{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d6b07ec1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Defaulting to user installation because normal site-packages is not writeable\n",
      "Requirement already satisfied: striprtf in /home/user/.local/lib/python3.10/site-packages (0.0.26)\n"
     ]
    }
   ],
   "source": [
    "!pip install striprtf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "9425088c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import sys\n",
    "import glob\n",
    "import numpy as np\n",
    "from tqdm import tqdm\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from bs4 import BeautifulSoup\n",
    "import requests\n",
    "import random\n",
    "from striprtf.striprtf import rtf_to_text"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 225,
   "id": "7ca24d28",
   "metadata": {},
   "outputs": [],
   "source": [
    "mapping = {\n",
    "    \"proxy\": \"доверенность\",\n",
    "    \"contract\": \"договор\",\n",
    "    \"act\": \"акт\",\n",
    "    \"application\": \"заявление\",\n",
    "    \"order\": \"приказ\",\n",
    "    \"invoice\": \"счет\",\n",
    "    \"bill\": \"приложение\",\n",
    "    \"arrangement\": \"соглашение\",\n",
    "    \"contract offer\": \"договор оферты\",\n",
    "    \"statute\": \"устав\",\n",
    "    \"determination\": \"решение\",\n",
    "}\n",
    "etor = mapping\n",
    "rtoe = {value: key for key, value in mapping.items()}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 217,
   "id": "74d51a75",
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "sample = pd.read_csv('../data/sample.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "24ea969a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>arrangement</td>\n",
       "      <td>СОГЛАШЕНИЕ N 8\\nо расторжении трудового догово...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>arrangement</td>\n",
       "      <td>Соглашение о предоставлении опциона на заключе...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>arrangement</td>\n",
       "      <td>Соглашение\\nо реструктуризации задолженности\\n...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>arrangement</td>\n",
       "      <td>Дополнительное соглашение\\r\\nк договору купли-...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>arrangement</td>\n",
       "      <td>Соглашение\\nо расторжении договора об оказании...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>496</th>\n",
       "      <td>bill</td>\n",
       "      <td>Счет № 5 от 01 октября 2020 г.\\r\\n\\r\\nПоставщи...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>497</th>\n",
       "      <td>bill</td>\n",
       "      <td>Счет на оплату № от 14 октября 2020 года\\r\\n\\r...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>498</th>\n",
       "      <td>bill</td>\n",
       "      <td>Счет №23                  от 12.09.2024 г.\\t\\t...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>499</th>\n",
       "      <td>bill</td>\n",
       "      <td>\"Огурец!\" (ИП Микрюков В.В.)\\t\\t\\t\\t\\t\\t\\r\\n\\t...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>500</th>\n",
       "      <td>bill</td>\n",
       "      <td>ООО «Тигр-Ряв»\\t\\t \\r\\nг. Липецк, ул. Масленая...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>501 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           class                                               text\n",
       "0    arrangement  СОГЛАШЕНИЕ N 8\\nо расторжении трудового догово...\n",
       "1    arrangement  Соглашение о предоставлении опциона на заключе...\n",
       "2    arrangement  Соглашение\\nо реструктуризации задолженности\\n...\n",
       "3    arrangement  Дополнительное соглашение\\r\\nк договору купли-...\n",
       "4    arrangement  Соглашение\\nо расторжении договора об оказании...\n",
       "..           ...                                                ...\n",
       "496         bill  Счет № 5 от 01 октября 2020 г.\\r\\n\\r\\nПоставщи...\n",
       "497         bill  Счет на оплату № от 14 октября 2020 года\\r\\n\\r...\n",
       "498         bill  Счет №23                  от 12.09.2024 г.\\t\\t...\n",
       "499         bill  \"Огурец!\" (ИП Микрюков В.В.)\\t\\t\\t\\t\\t\\t\\r\\n\\t...\n",
       "500         bill  ООО «Тигр-Ряв»\\t\\t \\r\\nг. Липецк, ул. Масленая...\n",
       "\n",
       "[501 rows x 2 columns]"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "ea38cd20",
   "metadata": {},
   "outputs": [],
   "source": [
    "sample['text'] = sample['text'].str.lower()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "eaf7a7b4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>166</th>\n",
       "      <td>proxy</td>\n",
       "      <td>д о в е р е н н о с т ь\\nг. марс\\nпервого янва...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>171</th>\n",
       "      <td>proxy</td>\n",
       "      <td>д о в е р е н н о с т ь\\nг. марс\\nпервого янва...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>173</th>\n",
       "      <td>contract</td>\n",
       "      <td>договор аутсорсинга it\\nгород кемерово 14 дека...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>179</th>\n",
       "      <td>contract</td>\n",
       "      <td>договор подряда на ремонт компьютера\\nгород ке...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>180</th>\n",
       "      <td>contract</td>\n",
       "      <td>договор подряда на уборку снега с крыш домов\\n...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>401</th>\n",
       "      <td>contract offer</td>\n",
       "      <td>договор публичной оферты\\r\\nнастоящий договор ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>403</th>\n",
       "      <td>contract offer</td>\n",
       "      <td>договор возмездного оказания услуг\\r\\n(публичн...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>415</th>\n",
       "      <td>contract offer</td>\n",
       "      <td>публичная оферта (договор) на предоставление у...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>433</th>\n",
       "      <td>invoice</td>\n",
       "      <td>\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>455</th>\n",
       "      <td>invoice</td>\n",
       "      <td>\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>77 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              class                                               text\n",
       "166           proxy  д о в е р е н н о с т ь\\nг. марс\\nпервого янва...\n",
       "171           proxy  д о в е р е н н о с т ь\\nг. марс\\nпервого янва...\n",
       "173        contract  договор аутсорсинга it\\nгород кемерово 14 дека...\n",
       "179        contract  договор подряда на ремонт компьютера\\nгород ке...\n",
       "180        contract  договор подряда на уборку снега с крыш домов\\n...\n",
       "..              ...                                                ...\n",
       "401  contract offer  договор публичной оферты\\r\\nнастоящий договор ...\n",
       "403  contract offer  договор возмездного оказания услуг\\r\\n(публичн...\n",
       "415  contract offer  публичная оферта (договор) на предоставление у...\n",
       "433         invoice  \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t...\n",
       "455         invoice  \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t...\n",
       "\n",
       "[77 rows x 2 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample[\n",
    "    (sample['text'].str.lower().str.contains('соглашение'))\n",
    "    & \n",
    "    (sample['class'] != 'arrangement')\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "df944f51",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'«утвержден»:\\r\\n решением единственного участника\\r\\nобщества с ограниченной ответственностью\\r\\n«плюсплюс»\\r\\nот «28» февраля 2022г.\\r\\nустав\\r\\nобщества с ограниченной ответственностью\\r\\n«плюсплюс»\\r\\nг. орск\\r\\n2022г.статья 1. общие положения\\r\\n1.1. общество с ограниченной ответственностью «плюсплюс», именуемое в дальнейшем\\r\\n\"общество\", является коммерческой организацией созданной его учредителем на неопределенный срок.\\r\\n1.2. общество создано в соответствии с гражданским кодексом российской федерации, федеральным законом \"об обществах с ограниченной ответственностью\" (далее \"федеральный закон\") и\\r\\nдругими законодательными актами.\\r\\n1.3. общество является юридическим лицом и строит свою деятельность на основании настоящего\\r\\nустава и действующего законодательства российской федерации.\\r\\n общество считается созданным как юридическое лицо с момента его государственной регистрации,\\r\\nв порядке установленном федеральным законом о государственной регистрации юридических лиц.\\r\\n1.4. общество имеет обособленное имущество, учитываемое на его самостоятельном балансе.\\r\\n1.5. общество вправе в установленном порядке открывать банковские счета на территории российской федерации и за ее пределами.\\r\\n1.6. общество имеет круглую печать, содержащую его полное фирменное наименование на русском\\r\\nязыке и указание на место нахождения общества.\\r\\nобщество вправе иметь штампы и бланки со своим фирменным наименованием, собственную\\r\\nэмблему, а также зарегистрированный в установленном порядке товарный знак и другие средства\\r\\nвизуальной индивидуализации.\\r\\n 1.7. полное фирменное наименование общества на русском языке: общество с ограниченной\\r\\nответственностью «старт+».\\r\\n1.8. сокращенное фирменное наименование общества на русском языке: ооо «плюсплюс».\\r\\n1.9. место нахождения и почтовый адрес общества: российская федерация, оренбургская\\r\\nобласть, город орск, улица братская дом 125.\\r\\nстатья 2. предмет и цели деятельности общества\\r\\n2.1. целью деятельности общества является получение прибыли и наиболее эффективное ее использование для экономического и социального развития общества.\\r\\n2.2. основными видами деятельности общества являются:\\r\\nдеятельность школ подготовки водителей автотранспортных средств\\r\\nиные виды деятельности, не запрещенные действующим законодательством.\\r\\n2.3. деятельность общества не ограничивается видами деятельности, оговоренными в уставе.\\r\\nобщество имеет гражданские права и несёт гражданские обязанности, необходимые для осуществления любых видов деятельности, не запрещённых законодательством.\\r\\nв случаях, предусмотренных законом, юридическое лицо может заниматься отдельными видами\\r\\nдеятельности только на основании специального разрешения (лицензии), членства в саморегулируемой\\r\\nорганизации или выданного саморегулируемой организацией свидетельства о допуске к определенному\\r\\nвиду работ.\\r\\nесли условиями предоставления специального разрешения (лицензии) на осуществление\\r\\nопределённого вида деятельности предусмотрено требование осуществлять такую деятельность как\\r\\nисключительную, общество в течение срока действия специального разрешения (лицензии) вправе\\r\\nосуществлять только виды деятельности, предусмотренные специальным разрешением (лицензией), и\\r\\nсопутствующие виды деятельности.\\r\\nстатья 3. правовой статус общества\\r\\n3.1. общество для достижения целей своей деятельности вправе от своего имени совершать сделки,\\r\\nприобретать и осуществлять гражданские права и нести гражданские обязанности, быть истцом и\\r\\nответчиком в суде, арбитражном суде и (или) в третейском суде.\\r\\n3.2. общество несет ответственность по своим обязательствам всем принадлежащим ему\\r\\nимуществом. общество не отвечает по обязательствам участников.\\r\\nучастники общества (далее \"участники\") не отвечают по обязательствам общества и несут риск\\r\\nубытков, связанных с деятельностью общества, в пределах стоимости принадлежащих им долей в\\r\\nуставном капитале общества.\\r\\n3\\r\\n3\\r\\nучастники общества, не полностью оплатившие доли, несут солидарную ответственность по\\r\\nобязательствам общества в пределах стоимости неоплаченной части принадлежащих им долей в\\r\\nуставном капитале общества.\\r\\nроссийская федерация, субъекты российской федерации и муниципальные образования не несут\\r\\nответственности по обязательствам общества, равно как и общество не несет ответственности по\\r\\nобязательствам российской федерации, субъектов российской федерации и муниципальных образований.\\r\\n3.3. в случае несостоятельности (банкротства) общества по вине его участников или по вине других\\r\\nлиц, которые имеют право давать обязательные для общества указания либо иным образом имеют\\r\\nвозможность определять его действия, на указанных участников или других лиц в случае недостаточности имущества может быть возложена субсидиарная ответственность по его обязательствам.\\r\\n3.4. общество может создавать самостоятельно и совместно с другими хозяйственными обществами,\\r\\nтовариществами, кооперативами, предприятиями, учреждениями, организациями и гражданами на\\r\\nтерритории российской федерации организации с правами юридического лица в любых допустимых\\r\\nзаконом организационно-правовых формах.\\r\\n3.5. общество может иметь дочерние и зависимые хозяйственные общества с правами юридического\\r\\nлица.\\r\\nобщество признается дочерним, если другое (основное) хозяйственное общество или товарищество\\r\\nв силу преобладающего участия в его уставном капитале, либо в соответствии с заключенным между\\r\\nними договором, либо иным образом имеет возможность определять решения, принимаемые таким\\r\\nобществом.\\r\\n общество признается зависимым, если другое (преобладающее, участвующее) хозяйственное\\r\\nобщество имеет более двадцати процентов уставного капитала первого общества.\\r\\n3.6. общество может создавать филиалы и открывать представительства по решению общего\\r\\nсобрания участников общества на территории российской федерации и за ее пределами.\\r\\nсоздание филиалов и представительств за пределами территории российской федерации\\r\\nосуществляется с соблюдением требований законодательства рф, а также в соответствии с\\r\\nзаконодательством иностранного государства, на территории которого создаются филиалы или\\r\\nоткрываются представительства, если иное не предусмотрено международными договорами рф.\\r\\nфилиал и представительство общества не являются юридическими лицами и действуют на\\r\\nосновании утвержденных обществом положений.\\r\\nфилиалы и представительства не являются юридическими лицами, действуют на основании\\r\\nутвержденных обществом положений и наделяются имуществом, создавшим их обществом.\\r\\nфилиалы и представительства осуществляют деятельность от имени создавшего их общества.\\r\\nответственность за деятельность филиала и представительства общества несет создавшее их общество.\\r\\nруководители филиалов и представительств назначаются обществом и действуют на основании\\r\\nдоверенности.\\r\\nдоверенности руководителям филиалов и представительств от имени общества выдает директор\\r\\nили лицо, его замещающее.\\r\\n3.7. общество самостоятельно планирует свою хозяйственную деятельность, а также социальное\\r\\nразвитие коллектива.\\r\\n3.8. общество вправе привлекать для работы российских и иностранных специалистов, самостоятельно определяя формы, размеры и виды оплаты труда.\\r\\n3.9. общество в целях реализации технической, социальной, экономической и налоговой политики\\r\\nнесет ответственность за сохранность документов (управленческих, финансово - хозяйственных, по\\r\\nличному составу и др.); обеспечивает передачу на государственное хранение документов, имеющих\\r\\nнаучно-историческое значение, в государственные архивные учреждения в соответствии с действующим законодательством российской федерации.\\r\\nстатья 4. уставный капитал.\\r\\nувеличение и уменьшение размера уставного капитала общества.\\r\\n4.1. уставный капитал общества составляется из номинальной стоимости долей его участников.\\r\\nуставный капитал общества определяет минимальный размер имущества общества, гарантирующего\\r\\nинтересы его кредиторов.\\r\\nразмер уставного капитала составляет 10 000 (десять тысяч) рублей.\\r\\n4\\r\\n4\\r\\n4.2. увеличение уставного капитала допускается только после его полной оплаты.\\r\\nувеличение уставного капитала общества может осуществляться за счет имущества общества, и\\r\\n(или) за счет дополнительных вкладов участников общества, и (или) за счет вкладов третьих лиц,\\r\\nпринимаемых в общество.\\r\\n4.3. общество вправе, а в случаях, предусмотренных федеральным законом, обязано уменьшить\\r\\nсвой уставный капитал.\\r\\nуменьшение уставного капитала общества может осуществляться путем уменьшения номинальной\\r\\nстоимости долей всех участников общества в уставном капитале общества и (или) погашения долей,\\r\\nпринадлежащих обществу.\\r\\nстатья 5. права и обязанности участников общества.\\r\\n5.1 участниками общества могут быть граждане и юридические лица.\\r\\nчисло участников общества не должно быть более пятидесяти.\\r\\n5.2. участник общества вправе:\\r\\n- участвовать в управлении делами общества в порядке, установленном федеральным законом и\\r\\nуставом общества;\\r\\n- получать информацию о деятельности общества и знакомиться с его бухгалтерскими книгами и\\r\\nиной документацией в установленном его уставом порядке;\\r\\n- принимать участие в распределении прибыли;\\r\\n- продать или осуществить отчуждение иным образом своей доли или части доли в уставном\\r\\nкапитале общества одному или нескольким участникам данного общества либо другому лицу в\\r\\nпорядке, предусмотренном федеральным законом и уставом общества;\\r\\n- выйти из общества путем отчуждения своей доли обществу, если такая возможность\\r\\nпредусмотрена уставом общества, или потребовать приобретения обществом доли в случаях,\\r\\nпредусмотренных федеральным законом;\\r\\n- получить в случае ликвидации общества часть имущества, оставшегося после расчетов с\\r\\nкредиторами, или его стоимость.\\r\\nучастники общества имеют также другие права, предусмотренные федеральным законом.\\r\\n5.3. участник общества обязан:\\r\\n- оплачивать доли в уставном капитале общества в порядке, в размерах и в сроки, которые\\r\\nпредусмотрены федеральным законом и договором об учреждении общества;\\r\\n- не разглашать конфиденциальную информацию о деятельности общества.\\r\\nучастники общества несут и другие обязанности, предусмотренные федеральным законом. реорганизация и ликвидация общества\\r\\n11.1. общество может быть добровольно реорганизовано в порядке, предусмотренном федеральным\\r\\nзаконом. реорганизация общества может быть осуществлена в форме слияния, присоединения,\\r\\nразделения, выделения и преобразования. реорганизация общества осуществляется в порядке,\\r\\nопределяемом действующим законодательством российской федерации.\\r\\nгосударственная регистрация обществ, созданных в результате реорганизации, и внесение записей о\\r\\nпрекращении деятельности реорганизованных обществ, а также государственная регистрация\\r\\nизменений в уставе осуществляется в порядке, установленном федеральными законами.\\r\\n 11.2. не позднее 30 дней со дня принятия решения о реорганизации или о ликвидации, общество\\r\\nобязано письменно уведомить своих кредиторов и опубликовать в органе печати, в котором\\r\\nпубликуются данные о государственной регистрации, сообщение о принятом решении.\\r\\n11.3. общество может быть ликвидировано добровольно в порядке, установленном гражданским\\r\\nкодексом российской федерации, с учетом требований федерального закона \"об обществах с ограниченной ответственностью\".\\r\\nобщее собрание добровольно ликвидируемого общества принимает решение о ликвидации\\r\\nобщества и назначении ликвидационной комиссии. решение общего собрания о добровольной\\r\\nликвидации общества и назначении ликвидационной комиссии принимается по предложению\\r\\nисполнительного органа или участника общества.\\r\\nпорядок ликвидации общества определяется гражданским кодексом российской федерации и\\r\\nдругими федеральными законами.\\r\\n11.4. ликвидация общества влечет за собой его прекращение без перехода прав и обязанностей в\\r\\nпорядке универсального правопреемства его прав и обязанностей к другим лицам.\\r\\n11.5. с момента назначения ликвидационной комиссии к ней переходят все полномочия по\\r\\nуправлению делами общества, в том числе по представлению общества в суде.\\r\\n11\\r\\n11\\r\\n11.6. оставшееся после завершения расчетов с кредиторами имущество ликвидируемого общества\\r\\nраспределяется ликвидационной комиссией между участниками общества в порядке и очередности,\\r\\nпредусмотренной федеральным законом.\\r\\n11.7. при реорганизации или ликвидации общества все документы (управленческие, финансовохозяйственные, по личному составу и др.) передаются в соответствии с установленными правилами\\r\\nпредприятию-правопреемнику, а при отсутствии правопреемника в государственный архив\\r\\nадминистративного округа, на территории которого находится общество.\\r\\n11.8. ликвидация общества считается завершенной с момента внесения органом государственной\\r\\nрегистрации соответствующей записи в единый государственный реестр юридических лиц.\\r'"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "i = random.randint(0, len(sample))\n",
    "sample['text'][i]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "e0f134ee",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('act', 'акт'),\n",
       " ('application', 'заявление'),\n",
       " ('arrangement', 'соглашение'),\n",
       " ('bill', 'приложение'),\n",
       " ('contract', 'договор'),\n",
       " ('contract offer', 'договор оферты'),\n",
       " ('determination', 'решение'),\n",
       " ('invoice', 'счет'),\n",
       " ('order', 'приказ'),\n",
       " ('proxy', 'доверенность'),\n",
       " ('statute', 'устав')]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sorted(mapping.items(), key=lambda x: x[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "25f44aeb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['act',\n",
       " 'application',\n",
       " 'arrangement',\n",
       " 'bill',\n",
       " 'contract',\n",
       " 'contract offer',\n",
       " 'determination',\n",
       " 'invoice',\n",
       " 'order',\n",
       " 'proxy',\n",
       " 'statute']"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sorted(sample['class'].unique().tolist())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "3aecb3b2",
   "metadata": {},
   "outputs": [],
   "source": [
    "def parse_rtf_file(file_path: str) -> str:\n",
    "    \"\"\"\n",
    "    Parse rtf file to pure text\n",
    "    \n",
    "    :param file_path: path to rtf-file\n",
    "    \"\"\"\n",
    "    \n",
    "    with open(file_path, 'r', encoding='utf-8') as file:\n",
    "        text = file.read()\n",
    "    text = rtf_to_text(text)\n",
    "    \n",
    "    return text"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "b9757f52",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'proxy': 'доверенность',\n",
       " 'contract': 'договор',\n",
       " 'act': 'акт',\n",
       " 'application': 'заявление',\n",
       " 'order': 'приказ',\n",
       " 'invoice': 'счет',\n",
       " 'bill': 'приложение',\n",
       " 'arrangement': 'соглашение',\n",
       " 'contract offer': 'договор оферты',\n",
       " 'statute': 'устав',\n",
       " 'determination': 'решение'}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mapping"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "24a7cecc",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|███████████████████████████████████████████| 10/10 [00:04<00:00,  2.15it/s]\n",
      "100%|█████████████████████████████████████████| 284/284 [00:15<00:00, 17.98it/s]\n",
      "100%|█████████████████████████████████████████| 260/260 [00:13<00:00, 18.68it/s]\n",
      "100%|███████████████████████████████████████████| 11/11 [00:00<00:00, 51.56it/s]\n",
      "100%|█████████████████████████████████████████| 108/108 [00:12<00:00,  8.78it/s]\n"
     ]
    }
   ],
   "source": [
    "def parse_folders() -> pd.DataFrame:\n",
    "\n",
    "    folders = [\n",
    "        ('Уставы', 'statute'),\n",
    "        ('Соглашения', 'arrangement'),\n",
    "        ('Приказы', 'order'),\n",
    "        ('Заявления', 'application'),\n",
    "        ('Договоры', 'contract'),\n",
    "    ]\n",
    "\n",
    "    folders_df = []\n",
    "\n",
    "    for folder in folders:\n",
    "        ru_name, class_ = folder\n",
    "\n",
    "        texts = []\n",
    "\n",
    "        for file_path in tqdm(glob.glob(f'../data/{ru_name}/*')):\n",
    "            text = parse_rtf_file(file_path)\n",
    "            texts.append(text)\n",
    "\n",
    "        folder_df = pd.DataFrame({\n",
    "            'class': class_,\n",
    "            'text': texts,\n",
    "        })\n",
    "\n",
    "        folders_df.append(folder_df)\n",
    "\n",
    "    folders_df = pd.concat(folders_df)\n",
    "    \n",
    "    return folders_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "5512472a",
   "metadata": {},
   "outputs": [],
   "source": [
    "folders_df = folders_df.reset_index(drop=True)\n",
    "folders_df.to_csv('from_folders.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "7ac09ed7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "\n",
    "sns.histplot(\n",
    "    data=sample, x='class', bins=11, color='skyblue'\n",
    ")\n",
    "plt.xticks(rotation=90)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "9866a8e1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "\n",
    "sns.histplot(\n",
    "    data=folders_df, x='class', bins=11, color='skyblue'\n",
    ")\n",
    "plt.xticks(rotation=90)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "5ee896d2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['ооо «напольное покрытие»\\r\\nприказ №88\\r\\n29.04.2021 года\\r\\nо премировании\\r\\nна основании пункта 23 положения о премировании №47-а, с учетом достигнутого отделом годового плана продаж:\\r\\n1. назначить гендиректору ооо «напольного покрытия» громову в.а. премию в размере 50% от оклада.\\r\\n2. главбуху ивановой о.о. начислить вознаграждение в срок до 10.05.2021 года.\\r\\n3. контроль над выполнением настоящего распоряжения возложить на главбуха иванову о.о.\\r\\nруководитель: семенов о.л. (подпись)\\r\\nс приказом ознакомлены:\\r\\nгромов в.а. (подпись)\\r\\nиванова о.о. (подпись)\\r\\n\\r'],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample[\n",
    "    sample['text'].str.contains('о премировании')\n",
    "]['text'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "8f4d11f7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "proxy             71\n",
       "contract          70\n",
       "act               69\n",
       "application       61\n",
       "order             50\n",
       "invoice           43\n",
       "bill              41\n",
       "arrangement       40\n",
       "contract offer    25\n",
       "statute           21\n",
       "determination     10\n",
       "Name: class, dtype: int64"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample['class'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "10a4f3a8",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cf283dab",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "d1114d60",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'arrangement'"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample['class'][6]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 238,
   "id": "9f570032",
   "metadata": {},
   "outputs": [],
   "source": [
    "import re\n",
    "import pandas as pd\n",
    "\n",
    "\n",
    "replace_words = {\n",
    "    \"доверенность\" : re.compile(r\"\\bд\\s*о\\s*в\\s*е\\s*р\\s*е\\s*н\\s*н\\s*о\\s*с\\s*т\\s*ь\\b\"),\n",
    "    \"договор\" : re.compile(r\"\\bд\\s*о\\s*г\\s*о\\s*в\\s*о\\s*р\\b\"),\n",
    "    \"акт\": re.compile(r\"\\bа\\s*к\\s*т\\b\"),\n",
    "    \"заявление\": re.compile(r\"\\bз\\s*а\\s*я\\s*в\\s*л\\s*е\\s*н\\s*и\\s*е\\b\"),\n",
    "    \"приказ\": re.compile(r\"\\bп\\s*р\\s*и\\s*к\\s*а\\s*з\\b\"),\n",
    "    \"счет\": re.compile(r\"\\bс\\s*ч\\s*е\\s*т\\b\"),\n",
    "    \"приложение\": re.compile(r\"\\bп\\s*р\\s*и\\s*л\\s*о\\s*ж\\s*е\\s*н\\s*и\\s*e\\b\"),\n",
    "    \"соглашение\": re.compile(r\"\\bс\\s*о\\s*г\\s*л\\s*а\\s*ш\\s*е\\s*н\\s*и\\s*e\\b\"),\n",
    "    \"договор оферты\": re.compile(r\"\\bд\\s*о\\s*г\\s*о\\s*в\\s*о\\s*р\\s*о\\s*ф\\s*е\\s*р\\s*т\\s*ы\\b\"),\n",
    "    \"устав\": re.compile(r\"\\bу\\s*с\\s*т\\s*а\\s*в\\b\"),\n",
    "    \"решение\": re.compile(r\"\\bр\\s*е\\s*ш\\s*е\\s*н\\s*и\\s*е\\b\")\n",
    "}\n",
    "\n",
    "\n",
    "def clean_text(text: str)->str:\n",
    "    for key, value in replace_words.items():\n",
    "        text = re.sub(value, key, text)\n",
    "\n",
    "    # Удаление цифр, символов, табуляций и символов окончания строки\n",
    "    text = re.sub(r'[^а-яА-Яa-zA-Z\\s<]', '', text)\n",
    "    text = re.sub(r'\\s+', ' ', text)\n",
    "    \n",
    "    # Удаление слов с длиной меньше одной буквы\n",
    "    text = ' '.join([word for word in text.split() if len(word) > 1])\n",
    "    text = re.sub(r'\\s+', ' ', text)\n",
    "\n",
    "    return text\n",
    "\n",
    "\n",
    "def data_processing(df: pd.DataFrame) -> pd.DataFrame:\n",
    "    df_ = df.copy()\n",
    "    df_['text'] = df_['text'].str.lower()\n",
    "    df_['text'] = df_['text'].apply(clean_text)\n",
    "    return df_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "0e703a52",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>arrangement</td>\n",
       "      <td>соглашение расторжении трудового договора от к...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>arrangement</td>\n",
       "      <td>соглашение предоставлении опциона на заключени...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>arrangement</td>\n",
       "      <td>соглашение реструктуризации задолженности ижев...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>arrangement</td>\n",
       "      <td>дополнительное соглашение договору куплипродаж...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>arrangement</td>\n",
       "      <td>соглашение расторжении договора об оказании ус...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>496</th>\n",
       "      <td>bill</td>\n",
       "      <td>счет от октября поставщик иванова нина игоревн...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>497</th>\n",
       "      <td>bill</td>\n",
       "      <td>счет на оплату от октября года поставщик ип ив...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>498</th>\n",
       "      <td>bill</td>\n",
       "      <td>счет от поставщик ооо асистемс инн кпп адрес с...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>499</th>\n",
       "      <td>bill</td>\n",
       "      <td>огурец ип микрюков вв адрес ижевск ая образец ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>500</th>\n",
       "      <td>bill</td>\n",
       "      <td>ооо тигрряв липецк ул масленая оф инн рс акб б...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>501 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           class                                               text\n",
       "0    arrangement  соглашение расторжении трудового договора от к...\n",
       "1    arrangement  соглашение предоставлении опциона на заключени...\n",
       "2    arrangement  соглашение реструктуризации задолженности ижев...\n",
       "3    arrangement  дополнительное соглашение договору куплипродаж...\n",
       "4    arrangement  соглашение расторжении договора об оказании ус...\n",
       "..           ...                                                ...\n",
       "496         bill  счет от октября поставщик иванова нина игоревн...\n",
       "497         bill  счет на оплату от октября года поставщик ип ив...\n",
       "498         bill  счет от поставщик ооо асистемс инн кпп адрес с...\n",
       "499         bill  огурец ип микрюков вв адрес ижевск ая образец ...\n",
       "500         bill  ооо тигрряв липецк ул масленая оф инн рс акб б...\n",
       "\n",
       "[501 rows x 2 columns]"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_processing(sample)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "40bc77c7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>statute</td>\n",
       "      <td>утверждено на учредительной конференции предст...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>statute</td>\n",
       "      <td>министерство обороны российской федерации кора...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>statute</td>\n",
       "      <td>введен действие приказом министра обороны росс...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>statute</td>\n",
       "      <td>принят учредительным съездом профсоюзов рсфср ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>statute</td>\n",
       "      <td>утвержден всероссийским съездом адвокатов янва...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>668</th>\n",
       "      <td>contract</td>\n",
       "      <td>договор товарных знаках знаках обслуживания на...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>669</th>\n",
       "      <td>contract</td>\n",
       "      <td>договор от января года между российской федера...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>670</th>\n",
       "      <td>contract</td>\n",
       "      <td>центральный банк российской федерации приложен...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>671</th>\n",
       "      <td>contract</td>\n",
       "      <td>договор от июня года союза советских социалист...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>672</th>\n",
       "      <td>contract</td>\n",
       "      <td>договор от апреля года между российской федера...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>673 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        class                                               text\n",
       "0     statute  утверждено на учредительной конференции предст...\n",
       "1     statute  министерство обороны российской федерации кора...\n",
       "2     statute  введен действие приказом министра обороны росс...\n",
       "3     statute  принят учредительным съездом профсоюзов рсфср ...\n",
       "4     statute  утвержден всероссийским съездом адвокатов янва...\n",
       "..        ...                                                ...\n",
       "668  contract  договор товарных знаках знаках обслуживания на...\n",
       "669  contract  договор от января года между российской федера...\n",
       "670  contract  центральный банк российской федерации приложен...\n",
       "671  contract  договор от июня года союза советских социалист...\n",
       "672  contract  договор от апреля года между российской федера...\n",
       "\n",
       "[673 rows x 2 columns]"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "folders_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "a3e6ff5f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Директору ООО «Электра»\\nНикодимову Артему Филипповичу\\nот менеджера\\nСупруновой Маргариты Петровны\\n\\nзаявление.\\n\\nПрошу предоставить мне отпуск по уходу за ребенком до 1,5 лет (дочь Супрунова Мария Ильинична родилась 3.04.19 г.) с 13 июня 2019 года. Прошу производить расчет и выплачивать мне ежемесячное пособие по уходу за ребенком до 1,5 лет на счет зарплатной карты.\\nПриложения:\\n\\nкопия свидетельства о рождении дочери Супруновой М.И.,\\nсправка с места работы мужа, о том, то он не находится в отпуске по уходу за ребенком и не получает ежемесячное пособие.\\n13.06.19 г.\\n\\nСупрунова М.П.',\n",
       "       'Договор аутсорсинга IT\\nГород Кемерово 14 декабря 2023 года\\nООО «Программ Плюс», в лице исполняющего обязанности генерального директора общества Иванова Петра Максимовича, действующего в соответствии с Уставом общества, именуемый в дальнейшем «Исполнитель», с одной стороны\\nи\\nИП Максименко, в лице индивидуального предпринимателя Максименко Дмитрия Анатольевича, паспортные данные: серия 3333 номер 333333, выдан УМВД России по Кемеровской области в городе Кемерово 13.01.2022 года, зарегистрированный по адресу: Кемеровская область, город Кемерово, улица Челюскинцев 13, строение 8, квартира 986, именуемый в дальнейшем «Заказчик», с другой стороны   \\nзаключили настоящий договор о нижеследующем \\nПредмет\\nСогласно условиям настоящего соглашения сотрудники Исполнителя по поручению Заказчика осуществляют работы в IT сфере, перечень которых указан в приложении 1 к настоящему договору. \\nОбязательным условием настоящего договора является прием-передача выполненных работ, в рамках которой Заказчик оценивает их качество.\\nНастоящее соглашение заключается на срок – 1 календарный месяц с момента подписания настоящего соглашения. \\nСтоимость выполняемых работ\\nРазмер денежного вознаграждения Аутсорсера составляет 10 рублей 00 копеек.\\nОплата осуществляется путем зачисления денежных средств на банковский счет Исполнителя. \\nОплата производится после подписания акта приема-передачи выполненных работ.\\nПрава и обязанности\\nИсполнитель вправе:\\nТребовать денежного вознаграждения за выполненные поручения. \\nИсполнитель обязуется: \\nНадлежащим образом выполнить работы в сфере IT, перечень которых указан в приложении 1 к настоящему договору;\\nНести ответственность за несоблюдение условий настоящего соглашения. \\nЗаказчик вправе: \\nТребовать качественного выполнения работ в сфере IT, перечень которых указан в приложении 1 к настоящему договору.\\nЗаказчик обязуется: \\nОплатить деятельность сотрудников Исполнителя после приема-передачи выполненных работ;\\nНести ответственность за несоблюдение условий настоящего соглашения. \\n',\n",
       "       'Директору ООО «Рога и копыта» Денисову Олегу Викторовичу\\r\\nОт оператора горячей линии Бальмонт Сергея Павловича\\r\\nЗаявление на ранний уход с работы\\r\\nПрошу 28.09.2025 г. отпустить меня с работы пораньше, в 15 часов 00 минут в связи с необходимостью посещения поликлиники. Время приёма по талону – 16 часов 00 минут.\\r\\n27 сентября 2025 г',\n",
       "       'Доверенность\\nна получение товара\\n\\nг. Пермь                                                                                                                           19.08.2016 г. \\nООО «СтройМир», ОГРН 3153426354728645, ИНН 1324352416354, находящееся по адресу: г. Пермь ул. Свободы, д.475, в лице Директора Симонова Ивана Терентьевича, действующего на основании Устава настоящей доверенностью уполномочивает менеджера по закупкам Ускова Виталия Ивановича паспорт серия 3425 № 675846,  выдан ОВД Ленинского р-на г. Пермь «17» мая 2010 г.,  код подразделения 132-981, \\nв том, что он (она) уполномочен представлять интересы ООО «СтройМир» по вопросу получения Товара, согласно товарной накладной, товарно-транспортной накладной, счету или иному оговоренному документу у представителя продавца – ООО «СтройОпт» в соответствии с договором купли-продажи № 17 от «15» августа 2016 года. \\nДля выполнения данного поручения Ускову В.И. предоставляется право подписания документов, сопутствующих получению товара, а также совершения всех иных необходимых действий.\\nНастоящая доверенность выдана без права передоверия сроком на 1 (один) год и действительна до «19» августа 2017 года включительно.\\n\\nПодпись менеджера по закупкам              Усков               /Усков В.И /                    удостоверяю.\\n\\nДиректор ООО «СтройМир»       Симонов          /Симонов И.Т./\\n',\n",
       "       'Общество с ограниченной ответственностью\\n«Радуга»\\n\\nУтверждаю:\\nдиректор ООО «Радуга»\\nЕфимов С. И. ____________\\nСогласовано:\\nпредседатель профкома\\nработников ООО «Радуга»\\nСкворцова Н. П. __________\\n\\n\\nг. Красногорск                                                                        15.01.2018\\n\\n\\nАкт проверки выполнения коллективного договора за 2017 год\\nООО «Радуга»\\n\\nКоллективный договор заключен в 2014 году между работодателем (в лице директора ООО «Радуга» Ефимова С. И.) и работниками (в лице председателя профкома ООО «Радуга» Скворцовой Н. П.). Данный договор является правовым актом, регулирующим социально-трудовые отношения в организации в соответствии с Трудовым кодексом РФ и иными законодательными и нормативными правовыми актами.\\nЦели коллективного договора:\\n1.        Определение взаимных обязательств работников и работодателя, касающихся защиты социально-трудовых прав и профессиональных интересов работников ООО «Радуга».\\n2.        Установление дополнительных социально-экономических, правовых и профессиональных гарантий, льгот и преимуществ для работников, а также более благоприятных условий труда по сравнению с установленными законами и иными нормативными правовыми актами.\\nКоллективный договор № 1930 подписан 18.01.2014 и зарегистрирован в Центре труда и занятости населения. Замечаний по результатам экспертизы Центра труда и занятости нет.\\nПравила внутреннего трудового распорядка (ПВТР), согласованы с председателем профкома, работники ознакомлены с ПВТР под подпись.\\nПоложение об оплате труда и протоколы балансовых комиссий утверждены приказом № 27 от 18.01.2014, согласованы с профкомом.\\n\\n\\nРаздел 1. Трудовые отношения, рабочее время и время отдыха\\n\\nТрудовые договоры (ТД) заключались с работниками в письменной форме в двух экземплярах, каждый из которых подписывался работодателем и работником. Заключенные договоры регистрируются в книге регистрации ТД.\\nВ ТД прописаны существенные условия труда:\\n•        место работы,\\n•        должность,\\n•        размер должностного оклада,\\n•        дата начала работы,\\n•        режим рабочего времени и времени отдыха,\\n•        компенсации за вредность,\\n•        дополнительные соглашения и т. д.\\nВторые экземпляры трудовых договоров выданы работникам под подпись с указанием даты. Работников, с которыми заключен срочный трудовой договор, нет.\\nДолжности работников соответствуют единому тарифно-квалификационному справочнику.\\nРаботники ознакомлены с приказами о приеме на работу под подпись с указанием даты ознакомления.\\nСоставлен график отпусков, утвержден приказом № 177 от 10.12.2015, согласован с профкомом.\\nРаботников-инвалидов 2 или 3 групп нет.\\nДля сотрудников охраны были составлены графики дежурства, согласованные с профкомом. Работники ознакомлены с ними.\\nПривлечение к работе в выходные и нерабочие праздничные дни не производилось.\\nОплата отпуска производится не позднее чем за три дня до его начала.\\nРаботников, работающих на неполную ставку и менее 18 часов, нет.\\nВсе работники ознакомлены с утвержденными должностными инструкциями.\\nРаботников, получающих дополнительные отпуска, нет.\\n\\nРаздел 2. Оплата и нормы труда\\n\\nВ ООО «Радуга» установлены сроки для выплаты: заработной платы — до 15 числа и аванса — до 25 числа. Сроки соблюдены, задержек выплаты не было.\\nНарушений по оплате труда не выявлено. За работу в ночное время сотрудникам охраны производится доплата в размере 20%оклада.\\n\\nРаздел 3. Гарантии содействия занятости\\n\\nПрекращение трудового договора с работником производится, согласно статье 77 ТК РФ, только по основаниям, предусмотренным ТК и иными федеральными законами. Все расторжения выполнены администрацией без нарушений, по собственному желанию работников.\\nЗа отчетный период (с 01.01.2017 по 31.12.2017) сокращение рабочих мест не производилось.\\nСотрудникам предоставляются оплачиваемые учебные отпуска в соответствии с ТК РФ.\\n\\nРаздел 4. Охрана труда\\n\\nОдним из основных направлений деятельности ООО «Радуга» является работа по охране и безопасности труда работников. Для реализации права работников Общества на здоровые и безопасные условия труда, внедрение современных средств безопасности, предупреждающих производственный травматизм и возникновение профессиональных заболеваний работников, в полном соответствии со статьей  219 ТК РФ ежегодно заключается соглашение по охране труда с определением в нем организационных и технических мероприятий по охране и безопасности труда, сроков их выполнения, ответственных должностных лиц.\\nЗа счет работодателя систематически проводятся профилактические осмотры, диспансеризация, плановые прививки сотрудников, их вакцинация, витаминизация, консультативная работа по профилактике различных заболеваний.\\nВ ООО «Радуга» проводится аттестация рабочих мест. В 2017 году аттестовано 25 рабочих мест, неаттестованных нет. Согласно протоколу аттестации, 36 работников имеют вредные условия труда — все они получают доплату за вредность.\\nСоставлен план мероприятий по устранению вредных факторов, выявленных в ходе аттестации рабочих мест. Проводится:\\n•        ежемесячное комплексное обслуживание технологического оборудования;\\n•        ежеквартальные тренировки по пожарной безопасности;\\n•        технологическое обслуживание АПС, замена ламп ЛБ 40.\\nНа мероприятия по улучшению условий труда затрачено 63 520 рублей.\\n\\nРаздел 5. Социальные льготы и гарантии\\n\\nВ коллективном договоре прописаны льготы и гарантии, которые предоставляются сотрудникам в полном объеме. Проработавшим в течение календарного года без листа нетрудоспособности (21 сотрудник) предоставлен согласно статье 117 ТК РФ дополнительный оплачиваемый отпуск в количестве трех календарных дней.\\nМолодых специалистов нет.\\nСотрудников, воспользовавшихся в 2017 году правом получения длительного отпуска сроком до 1 года, нет.\\nПредседателю профкома раз в квартал производится доплата 2000 рублей за счет средств организации из стимулирующего премиального фонда.\\nЗа отчетный период в ООО «Радуга» отсутствуют обращения в комиссию по трудовым спорам.\\nДисциплинарные взыскания на работников общества за 2017 год не налагались.\\n\\nАкт составлен комиссией в составе:\\nНачальник отдела кадров Петрова Е. К.        ______________________\\nСекретарь Иванова А.А.                         ______________________\\nГенеральный директор Львов В.В.                 ______________________\\n15.01.2018\\n'],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample.sample(5)['text'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "92219633",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "29b9c351",
   "metadata": {},
   "outputs": [],
   "source": [
    "parse_links = {\n",
    "    'доверенность': 'https://assistentus.ru/forma/doverennost/',\n",
    "    'договор': 'https://assistentus.ru/forma/dogovor/',\n",
    "    'акт': 'https://assistentus.ru/forma/akt/',\n",
    "    'заявление': 'https://assistentus.ru/forma/zayavlenie/',\n",
    "    'приказ': 'https://assistentus.ru/forma/prikaz/',\n",
    "#     'счет': '????',\n",
    "#     'приложение': '???',\n",
    "    'соглашение': 'https://assistentus.ru/forma/soglashenie/',\n",
    "#     'договор оферты': '???',\n",
    "#     'устав': '???',\n",
    "    'решение': 'https://assistentus.ru/forma/reshenie/'\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "3c22cbdc",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|                                                     | 0/7 [00:00<?, ?it/s]\n",
      "  0%|                                                    | 0/34 [00:00<?, ?it/s]\u001b[A\n",
      "  3%|█▎                                          | 1/34 [00:00<00:20,  1.61it/s]\u001b[A\n",
      "  6%|██▌                                         | 2/34 [00:01<00:19,  1.62it/s]\u001b[A\n",
      "  9%|███▉                                        | 3/34 [00:01<00:18,  1.64it/s]\u001b[A\n",
      " 12%|█████▏                                      | 4/34 [00:02<00:19,  1.52it/s]\u001b[A\n",
      " 15%|██████▍                                     | 5/34 [00:03<00:18,  1.57it/s]\u001b[A\n",
      " 18%|███████▊                                    | 6/34 [00:03<00:17,  1.61it/s]\u001b[A\n",
      " 21%|█████████                                   | 7/34 [00:04<00:16,  1.63it/s]\u001b[A\n",
      " 24%|██████████▎                                 | 8/34 [00:04<00:15,  1.64it/s]\u001b[A\n",
      " 26%|███████████▋                                | 9/34 [00:05<00:14,  1.67it/s]\u001b[A\n",
      " 29%|████████████▋                              | 10/34 [00:06<00:14,  1.69it/s]\u001b[A\n",
      " 32%|█████████████▉                             | 11/34 [00:06<00:13,  1.71it/s]\u001b[A\n",
      " 35%|███████████████▏                           | 12/34 [00:07<00:12,  1.70it/s]\u001b[A\n",
      " 38%|████████████████▍                          | 13/34 [00:07<00:12,  1.69it/s]\u001b[A\n",
      " 41%|█████████████████▋                         | 14/34 [00:08<00:12,  1.65it/s]\u001b[A\n",
      " 44%|██████████████████▉                        | 15/34 [00:09<00:11,  1.63it/s]\u001b[A\n",
      " 47%|████████████████████▏                      | 16/34 [00:09<00:10,  1.64it/s]\u001b[A\n",
      " 50%|█████████████████████▌                     | 17/34 [00:10<00:10,  1.64it/s]\u001b[A\n",
      " 53%|██████████████████████▊                    | 18/34 [00:10<00:09,  1.67it/s]\u001b[A\n",
      " 56%|████████████████████████                   | 19/34 [00:11<00:08,  1.67it/s]\u001b[A\n",
      " 59%|█████████████████████████▎                 | 20/34 [00:12<00:08,  1.66it/s]\u001b[A\n",
      " 62%|██████████████████████████▌                | 21/34 [00:12<00:07,  1.64it/s]\u001b[A\n",
      " 65%|███████████████████████████▊               | 22/34 [00:13<00:07,  1.65it/s]\u001b[A\n",
      " 68%|█████████████████████████████              | 23/34 [00:13<00:06,  1.64it/s]\u001b[A\n",
      " 71%|██████████████████████████████▎            | 24/34 [00:14<00:06,  1.66it/s]\u001b[A\n",
      " 74%|███████████████████████████████▌           | 25/34 [00:15<00:05,  1.64it/s]\u001b[A\n",
      " 76%|████████████████████████████████▉          | 26/34 [00:15<00:04,  1.62it/s]\u001b[A\n",
      " 79%|██████████████████████████████████▏        | 27/34 [00:16<00:04,  1.61it/s]\u001b[A\n",
      " 82%|███████████████████████████████████▍       | 28/34 [00:17<00:03,  1.64it/s]\u001b[A\n",
      " 85%|████████████████████████████████████▋      | 29/34 [00:17<00:03,  1.63it/s]\u001b[A\n",
      " 88%|█████████████████████████████████████▉     | 30/34 [00:18<00:02,  1.63it/s]\u001b[A\n",
      " 91%|███████████████████████████████████████▏   | 31/34 [00:18<00:01,  1.63it/s]\u001b[A\n",
      " 94%|████████████████████████████████████████▍  | 32/34 [00:19<00:01,  1.49it/s]\u001b[A\n",
      " 97%|█████████████████████████████████████████▋ | 33/34 [00:20<00:00,  1.52it/s]\u001b[A\n",
      "100%|███████████████████████████████████████████| 34/34 [00:20<00:00,  1.62it/s]\u001b[A\n",
      " 14%|██████▍                                      | 1/7 [00:21<02:08, 21.49s/it]\n",
      "  0%|                                                   | 0/675 [00:00<?, ?it/s]\u001b[A\n",
      "  0%|                                           | 1/675 [00:00<08:21,  1.34it/s]\u001b[A\n",
      "  0%|▏                                          | 2/675 [00:01<08:21,  1.34it/s]\u001b[A\n",
      "  0%|▏                                          | 3/675 [00:02<08:09,  1.37it/s]\u001b[A\n",
      "  1%|▎                                          | 4/675 [00:02<08:03,  1.39it/s]\u001b[A\n",
      "  1%|▎                                          | 5/675 [00:03<07:59,  1.40it/s]\u001b[A\n",
      "  1%|▍                                          | 6/675 [00:04<08:06,  1.37it/s]\u001b[A\n",
      "  1%|▍                                          | 7/675 [00:05<08:33,  1.30it/s]\u001b[A\n",
      "  1%|▌                                          | 8/675 [00:05<08:17,  1.34it/s]\u001b[A\n",
      "  1%|▌                                          | 9/675 [00:06<08:11,  1.36it/s]\u001b[A\n",
      "  1%|▌                                         | 10/675 [00:07<08:14,  1.35it/s]\u001b[A\n",
      "  2%|▋                                         | 11/675 [00:08<08:18,  1.33it/s]\u001b[A\n",
      "  2%|▋                                         | 12/675 [00:08<08:21,  1.32it/s]\u001b[A\n",
      "  2%|▊                                         | 13/675 [00:09<08:07,  1.36it/s]\u001b[A\n",
      "  2%|▊                                         | 14/675 [00:10<08:24,  1.31it/s]\u001b[A\n",
      "  2%|▉                                         | 15/675 [00:11<08:20,  1.32it/s]\u001b[A\n",
      "  2%|▉                                         | 16/675 [00:17<25:22,  2.31s/it]\u001b[A\n",
      "  3%|█                                         | 17/675 [00:17<20:08,  1.84s/it]\u001b[A\n",
      "  3%|█                                         | 18/675 [00:18<16:35,  1.51s/it]\u001b[A\n",
      "  3%|█▏                                        | 19/675 [00:19<14:03,  1.29s/it]\u001b[A\n",
      "  3%|█▏                                        | 20/675 [00:20<12:13,  1.12s/it]\u001b[A\n",
      "  3%|█▎                                        | 21/675 [00:20<11:00,  1.01s/it]\u001b[A\n",
      "  3%|█▎                                        | 22/675 [00:21<09:59,  1.09it/s]\u001b[A\n",
      "  3%|█▍                                        | 23/675 [00:22<09:17,  1.17it/s]\u001b[A\n",
      "  4%|█▍                                        | 24/675 [00:22<08:51,  1.23it/s]\u001b[A\n",
      "  4%|█▌                                        | 25/675 [00:23<08:26,  1.28it/s]\u001b[A\n",
      "  4%|█▌                                        | 26/675 [00:24<08:12,  1.32it/s]\u001b[A\n",
      "  4%|█▋                                        | 27/675 [00:25<08:01,  1.35it/s]\u001b[A\n",
      "  4%|█▋                                        | 28/675 [00:26<08:48,  1.22it/s]\u001b[A\n",
      "  4%|█▊                                        | 29/675 [00:26<08:35,  1.25it/s]\u001b[A\n",
      "  4%|█▊                                        | 30/675 [00:27<09:18,  1.16it/s]\u001b[A\n",
      "  5%|█▉                                        | 31/675 [00:28<08:44,  1.23it/s]\u001b[A\n",
      "  5%|█▉                                        | 32/675 [00:29<08:31,  1.26it/s]\u001b[A\n",
      "  5%|██                                        | 33/675 [00:30<08:11,  1.31it/s]\u001b[A\n",
      "  5%|██                                        | 34/675 [00:30<08:02,  1.33it/s]\u001b[A\n",
      "  5%|██▏                                       | 35/675 [00:31<07:51,  1.36it/s]\u001b[A\n",
      "  5%|██▏                                       | 36/675 [00:32<07:56,  1.34it/s]\u001b[A\n",
      "  5%|██▎                                       | 37/675 [00:32<08:03,  1.32it/s]\u001b[A\n",
      "  6%|██▎                                       | 38/675 [00:33<07:52,  1.35it/s]\u001b[A\n",
      "  6%|██▍                                       | 39/675 [00:34<07:44,  1.37it/s]\u001b[A\n",
      "  6%|██▍                                       | 40/675 [00:35<07:45,  1.36it/s]\u001b[A\n",
      "  6%|██▌                                       | 41/675 [00:35<07:42,  1.37it/s]\u001b[A\n",
      "  6%|██▌                                       | 42/675 [00:36<07:41,  1.37it/s]\u001b[A\n",
      "  6%|██▋                                       | 43/675 [00:37<07:37,  1.38it/s]\u001b[A\n",
      "  7%|██▋                                       | 44/675 [00:38<07:41,  1.37it/s]\u001b[A\n",
      "  7%|██▊                                       | 45/675 [00:38<07:34,  1.39it/s]\u001b[A\n",
      "  7%|██▊                                       | 46/675 [00:39<07:39,  1.37it/s]\u001b[A\n",
      "  7%|██▉                                       | 47/675 [00:45<22:57,  2.19s/it]\u001b[A\n",
      "  7%|██▉                                       | 48/675 [00:45<18:29,  1.77s/it]\u001b[A\n",
      "  7%|███                                       | 49/675 [00:46<15:29,  1.49s/it]\u001b[A\n",
      "  7%|███                                       | 50/675 [00:48<17:05,  1.64s/it]\u001b[A\n",
      "  8%|███▏                                      | 51/675 [00:49<14:39,  1.41s/it]\u001b[A\n",
      "  8%|███▏                                      | 52/675 [00:50<13:15,  1.28s/it]\u001b[A\n",
      "  8%|███▎                                      | 53/675 [00:51<11:26,  1.10s/it]\u001b[A\n",
      "  8%|███▎                                      | 54/675 [00:53<14:04,  1.36s/it]\u001b[A\n",
      "  8%|███▍                                      | 55/675 [00:53<12:15,  1.19s/it]\u001b[A\n",
      "  8%|███▍                                      | 56/675 [00:54<10:47,  1.05s/it]\u001b[A\n",
      "  8%|███▌                                      | 57/675 [00:56<12:27,  1.21s/it]\u001b[A\n",
      "  9%|███▌                                      | 58/675 [00:57<11:01,  1.07s/it]\u001b[A\n",
      "  9%|███▋                                      | 59/675 [00:57<09:56,  1.03it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  9%|███▋                                      | 60/675 [00:58<09:14,  1.11it/s]\u001b[A\n",
      "  9%|███▊                                      | 61/675 [00:59<08:36,  1.19it/s]\u001b[A\n",
      "  9%|███▊                                      | 62/675 [01:00<09:52,  1.03it/s]\u001b[A\n",
      "  9%|███▉                                      | 63/675 [01:01<08:45,  1.16it/s]\u001b[A\n",
      "  9%|███▉                                      | 64/675 [01:01<08:22,  1.22it/s]\u001b[A\n",
      " 10%|████                                      | 65/675 [01:02<07:55,  1.28it/s]\u001b[A\n",
      " 10%|████                                      | 66/675 [01:03<07:39,  1.32it/s]\u001b[A\n",
      " 10%|████▏                                     | 67/675 [01:08<22:23,  2.21s/it]\u001b[A\n",
      " 10%|████▏                                     | 68/675 [01:09<17:49,  1.76s/it]\u001b[A\n",
      " 10%|████▎                                     | 69/675 [01:10<14:35,  1.44s/it]\u001b[A\n",
      " 10%|████▎                                     | 70/675 [01:10<12:30,  1.24s/it]\u001b[A\n",
      " 11%|████▍                                     | 71/675 [01:12<12:06,  1.20s/it]\u001b[A\n",
      " 11%|████▍                                     | 72/675 [01:12<10:42,  1.07s/it]\u001b[A\n",
      " 11%|████▌                                     | 73/675 [01:13<09:40,  1.04it/s]\u001b[A\n",
      " 11%|████▌                                     | 74/675 [01:14<08:53,  1.13it/s]\u001b[A\n",
      " 11%|████▋                                     | 75/675 [01:14<08:21,  1.20it/s]\u001b[A\n",
      " 11%|████▋                                     | 76/675 [01:20<22:43,  2.28s/it]\u001b[A\n",
      " 11%|████▊                                     | 77/675 [01:26<32:38,  3.27s/it]\u001b[A\n",
      " 12%|████▊                                     | 78/675 [01:33<44:13,  4.44s/it]\u001b[A\n",
      " 12%|████▉                                     | 79/675 [01:34<33:06,  3.33s/it]\u001b[A\n",
      " 12%|████▉                                     | 80/675 [01:34<25:29,  2.57s/it]\u001b[A\n",
      " 12%|█████                                     | 81/675 [01:40<34:43,  3.51s/it]\u001b[A\n",
      " 12%|█████                                     | 82/675 [01:41<26:31,  2.68s/it]\u001b[A\n",
      " 12%|█████▏                                    | 83/675 [01:42<21:33,  2.18s/it]\u001b[A\n",
      " 12%|█████▏                                    | 84/675 [01:43<17:08,  1.74s/it]\u001b[A\n",
      " 13%|█████▎                                    | 85/675 [01:48<28:34,  2.91s/it]\u001b[A\n",
      " 13%|█████▎                                    | 86/675 [01:49<22:21,  2.28s/it]\u001b[A\n",
      " 13%|█████▍                                    | 87/675 [01:50<17:47,  1.82s/it]\u001b[A\n",
      " 13%|█████▍                                    | 88/675 [01:55<28:51,  2.95s/it]\u001b[A\n",
      " 13%|█████▌                                    | 89/675 [01:56<22:23,  2.29s/it]\u001b[A\n",
      " 13%|█████▌                                    | 90/675 [01:57<17:46,  1.82s/it]\u001b[A\n",
      " 13%|█████▋                                    | 91/675 [01:58<14:29,  1.49s/it]\u001b[A\n",
      " 14%|█████▋                                    | 92/675 [01:58<12:12,  1.26s/it]\u001b[A\n",
      " 14%|█████▊                                    | 93/675 [01:59<10:37,  1.09s/it]\u001b[A\n",
      " 14%|█████▊                                    | 94/675 [02:00<09:29,  1.02it/s]\u001b[A\n",
      " 14%|█████▉                                    | 95/675 [02:01<08:56,  1.08it/s]\u001b[A\n",
      " 14%|█████▉                                    | 96/675 [02:01<08:20,  1.16it/s]\u001b[A\n",
      " 14%|██████                                    | 97/675 [02:02<08:14,  1.17it/s]\u001b[A\n",
      " 15%|██████                                    | 98/675 [02:03<08:07,  1.18it/s]\u001b[A\n",
      " 15%|██████▏                                   | 99/675 [02:04<07:48,  1.23it/s]\u001b[A\n",
      " 15%|██████                                   | 100/675 [02:04<07:31,  1.27it/s]\u001b[A\n",
      " 15%|██████▏                                  | 101/675 [02:10<21:34,  2.25s/it]\u001b[A\n",
      " 15%|██████▏                                  | 102/675 [02:11<17:04,  1.79s/it]\u001b[A\n",
      " 15%|██████▎                                  | 103/675 [02:11<14:01,  1.47s/it]\u001b[A\n",
      " 15%|██████▎                                  | 104/675 [02:12<12:30,  1.31s/it]\u001b[A\n",
      " 16%|██████▍                                  | 105/675 [02:13<10:48,  1.14s/it]\u001b[A\n",
      " 16%|██████▍                                  | 106/675 [02:14<09:35,  1.01s/it]\u001b[A\n",
      " 16%|██████▍                                  | 107/675 [02:15<08:44,  1.08it/s]\u001b[A\n",
      " 16%|██████▌                                  | 108/675 [02:20<22:03,  2.33s/it]\u001b[A\n",
      " 16%|██████▌                                  | 109/675 [02:21<17:23,  1.84s/it]\u001b[A\n",
      " 16%|██████▋                                  | 110/675 [02:22<14:05,  1.50s/it]\u001b[A\n",
      " 16%|██████▋                                  | 111/675 [02:22<11:47,  1.25s/it]\u001b[A\n",
      " 17%|██████▊                                  | 112/675 [02:23<10:15,  1.09s/it]\u001b[A\n",
      " 17%|██████▊                                  | 113/675 [02:24<09:13,  1.01it/s]\u001b[A\n",
      " 17%|██████▉                                  | 114/675 [02:24<08:22,  1.12it/s]\u001b[A\n",
      " 17%|██████▉                                  | 115/675 [02:25<07:49,  1.19it/s]\u001b[A\n",
      " 17%|███████                                  | 116/675 [02:26<07:18,  1.27it/s]\u001b[A\n",
      " 17%|███████                                  | 117/675 [02:26<07:05,  1.31it/s]\u001b[A\n",
      " 17%|███████▏                                 | 118/675 [02:27<07:00,  1.33it/s]\u001b[A\n",
      " 18%|███████▏                                 | 119/675 [02:28<06:48,  1.36it/s]\u001b[A\n",
      " 18%|███████▎                                 | 120/675 [02:29<06:46,  1.37it/s]\u001b[A\n",
      " 18%|███████▎                                 | 121/675 [02:29<06:38,  1.39it/s]\u001b[A\n",
      " 18%|███████▍                                 | 122/675 [02:30<06:38,  1.39it/s]\u001b[A\n",
      " 18%|███████▍                                 | 123/675 [02:31<06:42,  1.37it/s]\u001b[A\n",
      " 18%|███████▌                                 | 124/675 [02:32<08:27,  1.08it/s]\u001b[A\n",
      " 19%|███████▌                                 | 125/675 [02:33<08:29,  1.08it/s]\u001b[A\n",
      " 19%|███████▋                                 | 126/675 [02:34<07:56,  1.15it/s]\u001b[A\n",
      " 19%|███████▋                                 | 127/675 [02:35<09:10,  1.00s/it]\u001b[A\n",
      " 19%|███████▊                                 | 128/675 [02:41<21:57,  2.41s/it]\u001b[A\n",
      " 19%|███████▊                                 | 129/675 [02:42<17:42,  1.95s/it]\u001b[A\n",
      " 19%|███████▉                                 | 130/675 [02:42<14:20,  1.58s/it]\u001b[A\n",
      " 19%|███████▉                                 | 131/675 [02:44<14:49,  1.64s/it]\u001b[A\n",
      " 20%|████████                                 | 132/675 [02:45<12:14,  1.35s/it]\u001b[A\n",
      " 20%|████████                                 | 133/675 [02:46<10:30,  1.16s/it]\u001b[A\n",
      " 20%|████████▏                                | 134/675 [02:46<09:18,  1.03s/it]\u001b[A\n",
      " 20%|████████▏                                | 135/675 [02:47<09:24,  1.04s/it]\u001b[A\n",
      " 20%|████████▎                                | 136/675 [02:48<08:33,  1.05it/s]\u001b[A\n",
      " 20%|████████▎                                | 137/675 [02:49<08:06,  1.11it/s]\u001b[A\n",
      " 20%|████████▍                                | 138/675 [02:50<07:51,  1.14it/s]\u001b[A\n",
      " 21%|████████▍                                | 139/675 [02:51<07:42,  1.16it/s]\u001b[A\n",
      " 21%|████████▌                                | 140/675 [02:52<10:04,  1.13s/it]\u001b[A\n",
      " 21%|████████▌                                | 141/675 [02:53<08:57,  1.01s/it]\u001b[A\n",
      " 21%|████████▋                                | 142/675 [02:54<08:13,  1.08it/s]\u001b[A\n",
      " 21%|████████▋                                | 143/675 [02:55<07:43,  1.15it/s]\u001b[A\n",
      " 21%|████████▋                                | 144/675 [03:00<20:26,  2.31s/it]\u001b[A\n",
      " 21%|████████▊                                | 145/675 [03:01<16:26,  1.86s/it]\u001b[A\n",
      " 22%|████████▊                                | 146/675 [03:02<13:23,  1.52s/it]\u001b[A\n",
      " 22%|████████▉                                | 147/675 [03:02<11:15,  1.28s/it]\u001b[A\n",
      " 22%|████████▉                                | 148/675 [03:03<09:44,  1.11s/it]\u001b[A\n",
      " 22%|█████████                                | 149/675 [03:04<08:47,  1.00s/it]\u001b[A\n",
      " 22%|█████████                                | 150/675 [03:05<08:08,  1.08it/s]\u001b[A\n",
      " 22%|█████████▏                               | 151/675 [03:05<07:35,  1.15it/s]\u001b[A\n",
      " 23%|█████████▏                               | 152/675 [03:06<07:11,  1.21it/s]\u001b[A\n",
      " 23%|█████████▎                               | 153/675 [03:07<06:48,  1.28it/s]\u001b[A\n",
      " 23%|█████████▎                               | 154/675 [03:08<06:43,  1.29it/s]\u001b[A\n",
      " 23%|█████████▍                               | 155/675 [03:08<06:38,  1.30it/s]\u001b[A\n",
      " 23%|█████████▍                               | 156/675 [03:09<06:26,  1.34it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 23%|█████████▌                               | 157/675 [03:10<07:12,  1.20it/s]\u001b[A\n",
      " 23%|█████████▌                               | 158/675 [03:11<06:54,  1.25it/s]\u001b[A\n",
      " 24%|█████████▋                               | 159/675 [03:16<19:16,  2.24s/it]\u001b[A\n",
      " 24%|█████████▋                               | 160/675 [03:17<15:14,  1.78s/it]\u001b[A\n",
      " 24%|█████████▊                               | 161/675 [03:18<12:30,  1.46s/it]\u001b[A\n",
      " 24%|█████████▊                               | 162/675 [03:19<10:38,  1.25s/it]\u001b[A\n",
      " 24%|█████████▉                               | 163/675 [03:19<09:09,  1.07s/it]\u001b[A\n",
      " 24%|█████████▉                               | 164/675 [03:20<08:10,  1.04it/s]\u001b[A\n",
      " 24%|██████████                               | 165/675 [03:21<07:40,  1.11it/s]\u001b[A\n",
      " 25%|██████████                               | 166/675 [03:22<07:26,  1.14it/s]\u001b[A\n",
      " 25%|██████████▏                              | 167/675 [03:22<06:37,  1.28it/s]\u001b[A\n",
      " 25%|██████████▏                              | 168/675 [03:23<06:23,  1.32it/s]\u001b[A\n",
      " 25%|██████████▎                              | 169/675 [03:24<06:23,  1.32it/s]\u001b[A\n",
      " 25%|██████████▎                              | 170/675 [03:24<06:20,  1.33it/s]\u001b[A\n",
      " 25%|██████████▍                              | 171/675 [03:25<06:08,  1.37it/s]\u001b[A\n",
      " 25%|██████████▍                              | 172/675 [03:26<06:12,  1.35it/s]\u001b[A\n",
      " 26%|██████████▌                              | 173/675 [03:26<05:51,  1.43it/s]\u001b[A\n",
      " 26%|██████████▌                              | 174/675 [03:27<05:58,  1.40it/s]\u001b[A\n",
      " 26%|██████████▋                              | 175/675 [03:28<05:58,  1.39it/s]\u001b[A\n",
      " 26%|██████████▋                              | 176/675 [03:28<05:54,  1.41it/s]\u001b[A\n",
      " 26%|██████████▊                              | 177/675 [03:29<05:52,  1.41it/s]\u001b[A\n",
      " 26%|██████████▊                              | 178/675 [03:30<05:54,  1.40it/s]\u001b[A\n",
      " 27%|██████████▊                              | 179/675 [03:31<05:54,  1.40it/s]\u001b[A\n",
      " 27%|██████████▉                              | 180/675 [03:31<05:53,  1.40it/s]\u001b[A\n",
      " 27%|██████████▉                              | 181/675 [03:32<05:52,  1.40it/s]\u001b[A\n",
      " 27%|███████████                              | 182/675 [03:33<05:55,  1.38it/s]\u001b[A\n",
      " 27%|███████████                              | 183/675 [03:33<05:50,  1.40it/s]\u001b[A\n",
      " 27%|███████████▏                             | 184/675 [03:34<05:51,  1.40it/s]\u001b[A\n",
      " 27%|███████████▏                             | 185/675 [03:35<05:50,  1.40it/s]\u001b[A\n",
      " 28%|███████████▎                             | 186/675 [03:36<05:46,  1.41it/s]\u001b[A\n",
      " 28%|███████████▎                             | 187/675 [03:36<05:50,  1.39it/s]\u001b[A\n",
      " 28%|███████████▍                             | 188/675 [03:37<05:46,  1.40it/s]\u001b[A\n",
      " 28%|███████████▍                             | 189/675 [03:38<05:41,  1.42it/s]\u001b[A\n",
      " 28%|███████████▌                             | 190/675 [03:38<05:36,  1.44it/s]\u001b[A\n",
      " 28%|███████████▌                             | 191/675 [03:39<05:37,  1.44it/s]\u001b[A\n",
      " 28%|███████████▋                             | 192/675 [03:40<05:39,  1.42it/s]\u001b[A\n",
      " 29%|███████████▋                             | 193/675 [03:41<05:34,  1.44it/s]\u001b[A\n",
      " 29%|███████████▊                             | 194/675 [03:41<05:40,  1.41it/s]\u001b[A\n",
      " 29%|███████████▊                             | 195/675 [03:42<05:40,  1.41it/s]\u001b[A\n",
      " 29%|███████████▉                             | 196/675 [03:43<05:40,  1.40it/s]\u001b[A\n",
      " 29%|███████████▉                             | 197/675 [03:43<05:43,  1.39it/s]\u001b[A\n",
      " 29%|████████████                             | 198/675 [03:44<05:35,  1.42it/s]\u001b[A\n",
      " 29%|████████████                             | 199/675 [03:45<05:39,  1.40it/s]\u001b[A\n",
      " 30%|████████████▏                            | 200/675 [03:46<05:45,  1.37it/s]\u001b[A\n",
      " 30%|████████████▏                            | 201/675 [03:46<05:21,  1.48it/s]\u001b[A\n",
      " 30%|████████████▎                            | 202/675 [03:47<05:34,  1.42it/s]\u001b[A\n",
      " 30%|████████████▎                            | 203/675 [03:48<05:48,  1.35it/s]\u001b[A\n",
      " 30%|████████████▍                            | 204/675 [03:48<05:46,  1.36it/s]\u001b[A\n",
      " 30%|████████████▍                            | 205/675 [03:49<05:41,  1.38it/s]\u001b[A\n",
      " 31%|████████████▌                            | 206/675 [03:50<05:45,  1.36it/s]\u001b[A\n",
      " 31%|████████████▌                            | 207/675 [03:51<05:44,  1.36it/s]\u001b[A\n",
      " 31%|████████████▋                            | 208/675 [03:51<05:40,  1.37it/s]\u001b[A\n",
      " 31%|████████████▋                            | 209/675 [03:52<05:36,  1.39it/s]\u001b[A\n",
      " 31%|████████████▊                            | 210/675 [03:53<05:37,  1.38it/s]\u001b[A\n",
      " 31%|████████████▊                            | 211/675 [03:53<05:17,  1.46it/s]\u001b[A\n",
      " 31%|████████████▉                            | 212/675 [03:54<05:22,  1.44it/s]\u001b[A\n",
      " 32%|████████████▉                            | 213/675 [03:55<05:20,  1.44it/s]\u001b[A\n",
      " 32%|████████████▉                            | 214/675 [03:56<05:24,  1.42it/s]\u001b[A\n",
      " 32%|█████████████                            | 215/675 [03:56<05:24,  1.42it/s]\u001b[A\n",
      " 32%|█████████████                            | 216/675 [03:57<05:24,  1.41it/s]\u001b[A\n",
      " 32%|█████████████▏                           | 217/675 [03:58<05:37,  1.36it/s]\u001b[A\n",
      " 32%|█████████████▏                           | 218/675 [03:58<05:35,  1.36it/s]\u001b[A\n",
      " 32%|█████████████▎                           | 219/675 [03:59<05:34,  1.36it/s]\u001b[A\n",
      " 33%|█████████████▎                           | 220/675 [04:00<05:45,  1.32it/s]\u001b[A\n",
      " 33%|█████████████▍                           | 221/675 [04:01<05:34,  1.36it/s]\u001b[A\n",
      " 33%|█████████████▍                           | 222/675 [04:01<05:36,  1.35it/s]\u001b[A\n",
      " 33%|█████████████▌                           | 223/675 [04:03<06:27,  1.17it/s]\u001b[A\n",
      " 33%|█████████████▌                           | 224/675 [04:03<05:59,  1.25it/s]\u001b[A\n",
      " 33%|█████████████▋                           | 225/675 [04:04<05:46,  1.30it/s]\u001b[A\n",
      " 33%|█████████████▋                           | 226/675 [04:05<05:41,  1.32it/s]\u001b[A\n",
      " 34%|█████████████▊                           | 227/675 [04:05<05:35,  1.33it/s]\u001b[A\n",
      " 34%|█████████████▊                           | 228/675 [04:06<05:28,  1.36it/s]\u001b[A\n",
      " 34%|█████████████▉                           | 229/675 [04:07<05:25,  1.37it/s]\u001b[A\n",
      " 34%|█████████████▉                           | 230/675 [04:08<05:27,  1.36it/s]\u001b[A\n",
      " 34%|██████████████                           | 231/675 [04:08<05:31,  1.34it/s]\u001b[A\n",
      " 34%|██████████████                           | 232/675 [04:09<05:26,  1.36it/s]\u001b[A\n",
      " 35%|██████████████▏                          | 233/675 [04:10<05:22,  1.37it/s]\u001b[A\n",
      " 35%|██████████████▏                          | 234/675 [04:11<05:24,  1.36it/s]\u001b[A\n",
      " 35%|██████████████▎                          | 235/675 [04:11<05:26,  1.35it/s]\u001b[A\n",
      " 35%|██████████████▎                          | 236/675 [04:12<05:31,  1.33it/s]\u001b[A\n",
      " 35%|██████████████▍                          | 237/675 [04:13<05:27,  1.34it/s]\u001b[A\n",
      " 35%|██████████████▍                          | 238/675 [04:14<05:18,  1.37it/s]\u001b[A\n",
      " 35%|██████████████▌                          | 239/675 [04:14<05:33,  1.31it/s]\u001b[A\n",
      " 36%|██████████████▌                          | 240/675 [04:15<05:26,  1.33it/s]\u001b[A\n",
      " 36%|██████████████▋                          | 241/675 [04:16<05:23,  1.34it/s]\u001b[A\n",
      " 36%|██████████████▋                          | 242/675 [04:17<05:21,  1.35it/s]\u001b[A\n",
      " 36%|██████████████▊                          | 243/675 [04:17<05:09,  1.39it/s]\u001b[A\n",
      " 36%|██████████████▊                          | 244/675 [04:18<05:05,  1.41it/s]\u001b[A\n",
      " 36%|██████████████▉                          | 245/675 [04:19<05:09,  1.39it/s]\u001b[A\n",
      " 36%|██████████████▉                          | 246/675 [04:19<05:07,  1.40it/s]\u001b[A\n",
      " 37%|███████████████                          | 247/675 [04:20<05:00,  1.43it/s]\u001b[A\n",
      " 37%|███████████████                          | 248/675 [04:21<04:58,  1.43it/s]\u001b[A\n",
      " 37%|███████████████                          | 249/675 [04:21<04:55,  1.44it/s]\u001b[A\n",
      " 37%|███████████████▏                         | 250/675 [04:22<04:57,  1.43it/s]\u001b[A\n",
      " 37%|███████████████▏                         | 251/675 [04:23<05:06,  1.38it/s]\u001b[A\n",
      " 37%|███████████████▎                         | 252/675 [04:24<05:01,  1.40it/s]\u001b[A\n",
      " 37%|███████████████▎                         | 253/675 [04:24<05:01,  1.40it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 38%|███████████████▍                         | 254/675 [04:25<04:59,  1.41it/s]\u001b[A\n",
      " 38%|███████████████▍                         | 255/675 [04:26<05:03,  1.38it/s]\u001b[A\n",
      " 38%|███████████████▌                         | 256/675 [04:26<04:56,  1.41it/s]\u001b[A\n",
      " 38%|███████████████▌                         | 257/675 [04:27<05:07,  1.36it/s]\u001b[A\n",
      " 38%|███████████████▋                         | 258/675 [04:28<05:06,  1.36it/s]\u001b[A\n",
      " 38%|███████████████▋                         | 259/675 [04:29<04:57,  1.40it/s]\u001b[A\n",
      " 39%|███████████████▊                         | 260/675 [04:29<04:58,  1.39it/s]\u001b[A\n",
      " 39%|███████████████▊                         | 261/675 [04:30<04:53,  1.41it/s]\u001b[A\n",
      " 39%|███████████████▉                         | 262/675 [04:31<04:50,  1.42it/s]\u001b[A\n",
      " 39%|███████████████▉                         | 263/675 [04:31<04:55,  1.40it/s]\u001b[A\n",
      " 39%|████████████████                         | 264/675 [04:32<05:05,  1.35it/s]\u001b[A\n",
      " 39%|████████████████                         | 265/675 [04:33<05:00,  1.36it/s]\u001b[A\n",
      " 39%|████████████████▏                        | 266/675 [04:34<04:55,  1.38it/s]\u001b[A\n",
      " 40%|████████████████▏                        | 267/675 [04:35<05:12,  1.31it/s]\u001b[A\n",
      " 40%|████████████████▎                        | 268/675 [04:35<05:08,  1.32it/s]\u001b[A\n",
      " 40%|████████████████▎                        | 269/675 [04:36<05:00,  1.35it/s]\u001b[A\n",
      " 40%|████████████████▍                        | 270/675 [04:37<04:55,  1.37it/s]\u001b[A\n",
      " 40%|████████████████▍                        | 271/675 [04:37<04:51,  1.39it/s]\u001b[A\n",
      " 40%|████████████████▌                        | 272/675 [04:38<04:50,  1.39it/s]\u001b[A\n",
      " 40%|████████████████▌                        | 273/675 [04:39<04:54,  1.37it/s]\u001b[A\n",
      " 41%|████████████████▋                        | 274/675 [04:40<04:47,  1.39it/s]\u001b[A\n",
      " 41%|████████████████▋                        | 275/675 [04:40<04:51,  1.37it/s]\u001b[A\n",
      " 41%|████████████████▊                        | 276/675 [04:41<04:49,  1.38it/s]\u001b[A\n",
      " 41%|████████████████▊                        | 277/675 [04:42<04:42,  1.41it/s]\u001b[A\n",
      " 41%|████████████████▉                        | 278/675 [04:42<04:48,  1.38it/s]\u001b[A\n",
      " 41%|████████████████▉                        | 279/675 [04:44<06:56,  1.05s/it]\u001b[A\n",
      " 41%|█████████████████                        | 280/675 [04:45<06:11,  1.06it/s]\u001b[A\n",
      " 42%|█████████████████                        | 281/675 [04:46<06:00,  1.09it/s]\u001b[A\n",
      " 42%|█████████████████▏                       | 282/675 [04:47<05:35,  1.17it/s]\u001b[A\n",
      " 42%|█████████████████▏                       | 283/675 [04:47<05:18,  1.23it/s]\u001b[A\n",
      " 42%|█████████████████▎                       | 284/675 [04:48<05:04,  1.28it/s]\u001b[A\n",
      " 42%|█████████████████▎                       | 285/675 [04:49<05:00,  1.30it/s]\u001b[A\n",
      " 42%|█████████████████▎                       | 286/675 [04:49<04:52,  1.33it/s]\u001b[A\n",
      " 43%|█████████████████▍                       | 287/675 [04:50<04:49,  1.34it/s]\u001b[A\n",
      " 43%|█████████████████▍                       | 288/675 [04:51<04:52,  1.33it/s]\u001b[A\n",
      " 43%|█████████████████▌                       | 289/675 [04:52<04:46,  1.35it/s]\u001b[A\n",
      " 43%|█████████████████▌                       | 290/675 [04:52<04:44,  1.35it/s]\u001b[A\n",
      " 43%|█████████████████▋                       | 291/675 [04:53<04:37,  1.38it/s]\u001b[A\n",
      " 43%|█████████████████▋                       | 292/675 [04:54<04:33,  1.40it/s]\u001b[A\n",
      " 43%|█████████████████▊                       | 293/675 [04:54<04:34,  1.39it/s]\u001b[A\n",
      " 44%|█████████████████▊                       | 294/675 [04:55<04:37,  1.37it/s]\u001b[A\n",
      " 44%|█████████████████▉                       | 295/675 [04:56<04:31,  1.40it/s]\u001b[A\n",
      " 44%|█████████████████▉                       | 296/675 [04:57<04:24,  1.43it/s]\u001b[A\n",
      " 44%|██████████████████                       | 297/675 [04:57<04:26,  1.42it/s]\u001b[A\n",
      " 44%|██████████████████                       | 298/675 [04:58<04:29,  1.40it/s]\u001b[A\n",
      " 44%|██████████████████▏                      | 299/675 [04:59<04:27,  1.41it/s]\u001b[A\n",
      " 44%|██████████████████▏                      | 300/675 [04:59<04:29,  1.39it/s]\u001b[A\n",
      " 45%|██████████████████▎                      | 301/675 [05:00<04:04,  1.53it/s]\u001b[A\n",
      " 45%|██████████████████▎                      | 302/675 [05:01<04:01,  1.54it/s]\u001b[A\n",
      " 45%|██████████████████▍                      | 303/675 [05:01<04:10,  1.48it/s]\u001b[A\n",
      " 45%|██████████████████▍                      | 304/675 [05:02<04:11,  1.48it/s]\u001b[A\n",
      " 45%|██████████████████▌                      | 305/675 [05:03<04:17,  1.44it/s]\u001b[A\n",
      " 45%|██████████████████▌                      | 306/675 [05:04<04:35,  1.34it/s]\u001b[A\n",
      " 45%|██████████████████▋                      | 307/675 [05:05<05:23,  1.14it/s]\u001b[A\n",
      " 46%|██████████████████▋                      | 308/675 [05:06<05:07,  1.19it/s]\u001b[A\n",
      " 46%|██████████████████▊                      | 309/675 [05:06<04:52,  1.25it/s]\u001b[A\n",
      " 46%|██████████████████▊                      | 310/675 [05:07<04:41,  1.30it/s]\u001b[A\n",
      " 46%|██████████████████▉                      | 311/675 [05:08<04:32,  1.33it/s]\u001b[A\n",
      " 46%|██████████████████▉                      | 312/675 [05:08<04:27,  1.35it/s]\u001b[A\n",
      " 46%|███████████████████                      | 313/675 [05:09<04:31,  1.33it/s]\u001b[A\n",
      " 47%|███████████████████                      | 314/675 [05:10<04:27,  1.35it/s]\u001b[A\n",
      " 47%|███████████████████▏                     | 315/675 [05:11<04:24,  1.36it/s]\u001b[A\n",
      " 47%|███████████████████▏                     | 316/675 [05:11<04:21,  1.37it/s]\u001b[A\n",
      " 47%|███████████████████▎                     | 317/675 [05:12<04:23,  1.36it/s]\u001b[A\n",
      " 47%|███████████████████▎                     | 318/675 [05:13<04:23,  1.35it/s]\u001b[A\n",
      " 47%|███████████████████▍                     | 319/675 [05:14<04:19,  1.37it/s]\u001b[A\n",
      " 47%|███████████████████▍                     | 320/675 [05:14<04:14,  1.39it/s]\u001b[A\n",
      " 48%|███████████████████▍                     | 321/675 [05:15<04:17,  1.38it/s]\u001b[A\n",
      " 48%|███████████████████▌                     | 322/675 [05:16<04:12,  1.40it/s]\u001b[A\n",
      " 48%|███████████████████▌                     | 323/675 [05:16<04:06,  1.43it/s]\u001b[A\n",
      " 48%|███████████████████▋                     | 324/675 [05:17<04:08,  1.41it/s]\u001b[A\n",
      " 48%|███████████████████▋                     | 325/675 [05:18<04:08,  1.41it/s]\u001b[A\n",
      " 48%|███████████████████▊                     | 326/675 [05:19<04:18,  1.35it/s]\u001b[A\n",
      " 48%|███████████████████▊                     | 327/675 [05:19<04:13,  1.37it/s]\u001b[A\n",
      " 49%|███████████████████▉                     | 328/675 [05:20<04:08,  1.40it/s]\u001b[A\n",
      " 49%|███████████████████▉                     | 329/675 [05:21<04:06,  1.40it/s]\u001b[A\n",
      " 49%|████████████████████                     | 330/675 [05:21<04:01,  1.43it/s]\u001b[A\n",
      " 49%|████████████████████                     | 331/675 [05:22<03:59,  1.43it/s]\u001b[A\n",
      " 49%|████████████████████▏                    | 332/675 [05:23<04:03,  1.41it/s]\u001b[A\n",
      " 49%|████████████████████▏                    | 333/675 [05:24<04:15,  1.34it/s]\u001b[A\n",
      " 49%|████████████████████▎                    | 334/675 [05:24<04:08,  1.37it/s]\u001b[A\n",
      " 50%|████████████████████▎                    | 335/675 [05:25<04:05,  1.39it/s]\u001b[A\n",
      " 50%|████████████████████▍                    | 336/675 [05:26<04:08,  1.37it/s]\u001b[A\n",
      " 50%|████████████████████▍                    | 337/675 [05:26<04:02,  1.39it/s]\u001b[A\n",
      " 50%|████████████████████▌                    | 338/675 [05:27<04:01,  1.40it/s]\u001b[A\n",
      " 50%|████████████████████▌                    | 339/675 [05:28<04:01,  1.39it/s]\u001b[A\n",
      " 50%|████████████████████▋                    | 340/675 [05:29<04:02,  1.38it/s]\u001b[A\n",
      " 51%|████████████████████▋                    | 341/675 [05:29<03:57,  1.41it/s]\u001b[A\n",
      " 51%|████████████████████▊                    | 342/675 [05:30<04:03,  1.37it/s]\u001b[A\n",
      " 51%|████████████████████▊                    | 343/675 [05:31<04:00,  1.38it/s]\u001b[A\n",
      " 51%|████████████████████▉                    | 344/675 [05:31<03:59,  1.38it/s]\u001b[A\n",
      " 51%|████████████████████▉                    | 345/675 [05:32<03:57,  1.39it/s]\u001b[A\n",
      " 51%|█████████████████████                    | 346/675 [05:33<03:56,  1.39it/s]\u001b[A\n",
      " 51%|█████████████████████                    | 347/675 [05:34<04:00,  1.37it/s]\u001b[A\n",
      " 52%|█████████████████████▏                   | 348/675 [05:34<03:42,  1.47it/s]\u001b[A\n",
      " 52%|█████████████████████▏                   | 349/675 [05:35<03:48,  1.43it/s]\u001b[A\n",
      " 52%|█████████████████████▎                   | 350/675 [05:36<03:33,  1.52it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 52%|█████████████████████▎                   | 351/675 [05:36<03:39,  1.48it/s]\u001b[A\n",
      " 52%|█████████████████████▍                   | 352/675 [05:37<03:43,  1.45it/s]\u001b[A\n",
      " 52%|█████████████████████▍                   | 353/675 [05:38<03:45,  1.43it/s]\u001b[A\n",
      " 52%|█████████████████████▌                   | 354/675 [05:38<03:47,  1.41it/s]\u001b[A\n",
      " 53%|█████████████████████▌                   | 355/675 [05:39<03:35,  1.48it/s]\u001b[A\n",
      " 53%|█████████████████████▌                   | 356/675 [05:40<03:41,  1.44it/s]\u001b[A\n",
      " 53%|█████████████████████▋                   | 357/675 [05:41<03:48,  1.39it/s]\u001b[A\n",
      " 53%|█████████████████████▋                   | 358/675 [05:41<03:45,  1.40it/s]\u001b[A\n",
      " 53%|█████████████████████▊                   | 359/675 [05:42<03:35,  1.47it/s]\u001b[A\n",
      " 53%|█████████████████████▊                   | 360/675 [05:43<03:40,  1.43it/s]\u001b[A\n",
      " 53%|█████████████████████▉                   | 361/675 [05:44<04:15,  1.23it/s]\u001b[A\n",
      " 54%|█████████████████████▉                   | 362/675 [05:44<04:02,  1.29it/s]\u001b[A\n",
      " 54%|██████████████████████                   | 363/675 [05:45<03:54,  1.33it/s]\u001b[A\n",
      " 54%|██████████████████████                   | 364/675 [05:46<04:05,  1.27it/s]\u001b[A\n",
      " 54%|██████████████████████▏                  | 365/675 [05:47<04:01,  1.28it/s]\u001b[A\n",
      " 54%|██████████████████████▏                  | 366/675 [05:47<03:54,  1.32it/s]\u001b[A\n",
      " 54%|██████████████████████▎                  | 367/675 [05:48<04:03,  1.27it/s]\u001b[A\n",
      " 55%|██████████████████████▎                  | 368/675 [05:49<03:52,  1.32it/s]\u001b[A\n",
      " 55%|██████████████████████▍                  | 369/675 [05:50<04:02,  1.26it/s]\u001b[A\n",
      " 55%|██████████████████████▍                  | 370/675 [05:51<03:57,  1.28it/s]\u001b[A\n",
      " 55%|██████████████████████▌                  | 371/675 [05:51<03:55,  1.29it/s]\u001b[A\n",
      " 55%|██████████████████████▌                  | 372/675 [05:52<03:49,  1.32it/s]\u001b[A\n",
      " 55%|██████████████████████▋                  | 373/675 [05:53<03:47,  1.33it/s]\u001b[A\n",
      " 55%|██████████████████████▋                  | 374/675 [05:54<03:48,  1.32it/s]\u001b[A\n",
      " 56%|██████████████████████▊                  | 375/675 [05:54<03:47,  1.32it/s]\u001b[A\n",
      " 56%|██████████████████████▊                  | 376/675 [05:55<03:43,  1.34it/s]\u001b[A\n",
      " 56%|██████████████████████▉                  | 377/675 [05:56<03:40,  1.35it/s]\u001b[A\n",
      " 56%|██████████████████████▉                  | 378/675 [05:57<03:42,  1.33it/s]\u001b[A\n",
      " 56%|███████████████████████                  | 379/675 [05:57<03:40,  1.34it/s]\u001b[A\n",
      " 56%|███████████████████████                  | 380/675 [05:58<03:39,  1.35it/s]\u001b[A\n",
      " 56%|███████████████████████▏                 | 381/675 [05:59<03:46,  1.30it/s]\u001b[A\n",
      " 57%|███████████████████████▏                 | 382/675 [06:00<03:40,  1.33it/s]\u001b[A\n",
      " 57%|███████████████████████▎                 | 383/675 [06:00<03:36,  1.35it/s]\u001b[A\n",
      " 57%|███████████████████████▎                 | 384/675 [06:01<03:35,  1.35it/s]\u001b[A\n",
      " 57%|███████████████████████▍                 | 385/675 [06:02<03:34,  1.35it/s]\u001b[A\n",
      " 57%|███████████████████████▍                 | 386/675 [06:02<03:29,  1.38it/s]\u001b[A\n",
      " 57%|███████████████████████▌                 | 387/675 [06:03<03:24,  1.41it/s]\u001b[A\n",
      " 57%|███████████████████████▌                 | 388/675 [06:04<03:24,  1.40it/s]\u001b[A\n",
      " 58%|███████████████████████▋                 | 389/675 [06:05<03:25,  1.39it/s]\u001b[A\n",
      " 58%|███████████████████████▋                 | 390/675 [06:05<03:23,  1.40it/s]\u001b[A\n",
      " 58%|███████████████████████▋                 | 391/675 [06:06<03:11,  1.48it/s]\u001b[A\n",
      " 58%|███████████████████████▊                 | 392/675 [06:07<03:10,  1.48it/s]\u001b[A\n",
      " 58%|███████████████████████▊                 | 393/675 [06:07<03:11,  1.47it/s]\u001b[A\n",
      " 58%|███████████████████████▉                 | 394/675 [06:08<03:13,  1.45it/s]\u001b[A\n",
      " 59%|███████████████████████▉                 | 395/675 [06:09<03:17,  1.42it/s]\u001b[A\n",
      " 59%|████████████████████████                 | 396/675 [06:09<03:17,  1.41it/s]\u001b[A\n",
      " 59%|████████████████████████                 | 397/675 [06:10<03:15,  1.42it/s]\u001b[A\n",
      " 59%|████████████████████████▏                | 398/675 [06:11<03:15,  1.42it/s]\u001b[A\n",
      " 59%|████████████████████████▏                | 399/675 [06:12<03:19,  1.39it/s]\u001b[A\n",
      " 59%|████████████████████████▎                | 400/675 [06:12<03:23,  1.35it/s]\u001b[A\n",
      " 59%|████████████████████████▎                | 401/675 [06:13<03:20,  1.36it/s]\u001b[A\n",
      " 60%|████████████████████████▍                | 402/675 [06:14<03:06,  1.47it/s]\u001b[A\n",
      " 60%|████████████████████████▍                | 403/675 [06:14<03:08,  1.44it/s]\u001b[A\n",
      " 60%|████████████████████████▌                | 404/675 [06:15<03:11,  1.41it/s]\u001b[A\n",
      " 60%|████████████████████████▌                | 405/675 [06:16<03:14,  1.39it/s]\u001b[A\n",
      " 60%|████████████████████████▋                | 406/675 [06:17<03:21,  1.34it/s]\u001b[A\n",
      " 60%|████████████████████████▋                | 407/675 [06:17<03:14,  1.38it/s]\u001b[A\n",
      " 60%|████████████████████████▊                | 408/675 [06:18<03:14,  1.37it/s]\u001b[A\n",
      " 61%|████████████████████████▊                | 409/675 [06:19<03:09,  1.40it/s]\u001b[A\n",
      " 61%|████████████████████████▉                | 410/675 [06:19<03:09,  1.40it/s]\u001b[A\n",
      " 61%|████████████████████████▉                | 411/675 [06:21<03:56,  1.12it/s]\u001b[A\n",
      " 61%|█████████████████████████                | 412/675 [06:21<03:35,  1.22it/s]\u001b[A\n",
      " 61%|█████████████████████████                | 413/675 [06:22<03:23,  1.29it/s]\u001b[A\n",
      " 61%|█████████████████████████▏               | 414/675 [06:23<03:13,  1.35it/s]\u001b[A\n",
      " 61%|█████████████████████████▏               | 415/675 [06:23<03:13,  1.34it/s]\u001b[A\n",
      " 62%|█████████████████████████▎               | 416/675 [06:24<03:08,  1.37it/s]\u001b[A\n",
      " 62%|█████████████████████████▎               | 417/675 [06:25<03:06,  1.38it/s]\u001b[A\n",
      " 62%|█████████████████████████▍               | 418/675 [06:26<03:07,  1.37it/s]\u001b[A\n",
      " 62%|█████████████████████████▍               | 419/675 [06:26<03:02,  1.40it/s]\u001b[A\n",
      " 62%|█████████████████████████▌               | 420/675 [06:27<03:03,  1.39it/s]\u001b[A\n",
      " 62%|█████████████████████████▌               | 421/675 [06:28<03:02,  1.39it/s]\u001b[A\n",
      " 63%|█████████████████████████▋               | 422/675 [06:28<03:00,  1.40it/s]\u001b[A\n",
      " 63%|█████████████████████████▋               | 423/675 [06:29<02:59,  1.40it/s]\u001b[A\n",
      " 63%|█████████████████████████▊               | 424/675 [06:30<03:01,  1.39it/s]\u001b[A\n",
      " 63%|█████████████████████████▊               | 425/675 [06:31<02:57,  1.41it/s]\u001b[A\n",
      " 63%|█████████████████████████▉               | 426/675 [06:31<03:01,  1.37it/s]\u001b[A\n",
      " 63%|█████████████████████████▉               | 427/675 [06:32<03:00,  1.38it/s]\u001b[A\n",
      " 63%|█████████████████████████▉               | 428/675 [06:33<02:59,  1.38it/s]\u001b[A\n",
      " 64%|██████████████████████████               | 429/675 [06:34<03:04,  1.33it/s]\u001b[A\n",
      " 64%|██████████████████████████               | 430/675 [06:34<03:00,  1.36it/s]\u001b[A\n",
      " 64%|██████████████████████████▏              | 431/675 [06:35<03:07,  1.30it/s]\u001b[A\n",
      " 64%|██████████████████████████▏              | 432/675 [06:36<03:10,  1.27it/s]\u001b[A\n",
      " 64%|██████████████████████████▎              | 433/675 [06:37<03:11,  1.26it/s]\u001b[A\n",
      " 64%|██████████████████████████▎              | 434/675 [06:38<03:06,  1.29it/s]\u001b[A\n",
      " 64%|██████████████████████████▍              | 435/675 [06:38<03:03,  1.30it/s]\u001b[A\n",
      " 65%|██████████████████████████▍              | 436/675 [06:39<03:00,  1.32it/s]\u001b[A\n",
      " 65%|██████████████████████████▌              | 437/675 [06:40<02:58,  1.33it/s]\u001b[A\n",
      " 65%|██████████████████████████▌              | 438/675 [06:40<02:53,  1.37it/s]\u001b[A\n",
      " 65%|██████████████████████████▋              | 439/675 [06:41<02:42,  1.45it/s]\u001b[A\n",
      " 65%|██████████████████████████▋              | 440/675 [06:42<02:44,  1.43it/s]\u001b[A\n",
      " 65%|██████████████████████████▊              | 441/675 [06:42<02:35,  1.50it/s]\u001b[A\n",
      " 65%|██████████████████████████▊              | 442/675 [06:43<02:35,  1.49it/s]\u001b[A\n",
      " 66%|██████████████████████████▉              | 443/675 [06:44<02:38,  1.47it/s]\u001b[A\n",
      " 66%|██████████████████████████▉              | 444/675 [06:44<02:39,  1.45it/s]\u001b[A\n",
      " 66%|███████████████████████████              | 445/675 [06:45<02:50,  1.35it/s]\u001b[A\n",
      " 66%|███████████████████████████              | 446/675 [06:46<02:48,  1.36it/s]\u001b[A\n",
      " 66%|███████████████████████████▏             | 447/675 [06:47<02:46,  1.37it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 66%|███████████████████████████▏             | 448/675 [06:47<02:45,  1.37it/s]\u001b[A\n",
      " 67%|███████████████████████████▎             | 449/675 [06:48<02:49,  1.33it/s]\u001b[A\n",
      " 67%|███████████████████████████▎             | 450/675 [06:49<02:48,  1.33it/s]\u001b[A\n",
      " 67%|███████████████████████████▍             | 451/675 [06:50<02:45,  1.35it/s]\u001b[A\n",
      " 67%|███████████████████████████▍             | 452/675 [06:50<02:44,  1.36it/s]\u001b[A\n",
      " 67%|███████████████████████████▌             | 453/675 [06:51<02:43,  1.35it/s]\u001b[A\n",
      " 67%|███████████████████████████▌             | 454/675 [06:52<02:40,  1.38it/s]\u001b[A\n",
      " 67%|███████████████████████████▋             | 455/675 [06:53<02:36,  1.41it/s]\u001b[A\n",
      " 68%|███████████████████████████▋             | 456/675 [06:53<02:34,  1.42it/s]\u001b[A\n",
      " 68%|███████████████████████████▊             | 457/675 [06:54<02:33,  1.42it/s]\u001b[A\n",
      " 68%|███████████████████████████▊             | 458/675 [06:55<02:30,  1.45it/s]\u001b[A\n",
      " 68%|███████████████████████████▉             | 459/675 [06:55<02:30,  1.43it/s]\u001b[A\n",
      " 68%|███████████████████████████▉             | 460/675 [06:56<02:29,  1.44it/s]\u001b[A\n",
      " 68%|████████████████████████████             | 461/675 [06:57<02:31,  1.42it/s]\u001b[A\n",
      " 68%|████████████████████████████             | 462/675 [06:57<02:28,  1.44it/s]\u001b[A\n",
      " 69%|████████████████████████████             | 463/675 [06:58<02:31,  1.40it/s]\u001b[A\n",
      " 69%|████████████████████████████▏            | 464/675 [06:59<02:30,  1.40it/s]\u001b[A\n",
      " 69%|████████████████████████████▏            | 465/675 [07:00<02:29,  1.40it/s]\u001b[A\n",
      " 69%|████████████████████████████▎            | 466/675 [07:00<02:31,  1.38it/s]\u001b[A\n",
      " 69%|████████████████████████████▎            | 467/675 [07:01<02:19,  1.49it/s]\u001b[A\n",
      " 69%|████████████████████████████▍            | 468/675 [07:02<02:22,  1.45it/s]\u001b[A\n",
      " 69%|████████████████████████████▍            | 469/675 [07:02<02:24,  1.42it/s]\u001b[A\n",
      " 70%|████████████████████████████▌            | 470/675 [07:03<02:23,  1.43it/s]\u001b[A\n",
      " 70%|████████████████████████████▌            | 471/675 [07:04<02:23,  1.42it/s]\u001b[A\n",
      " 70%|████████████████████████████▋            | 472/675 [07:04<02:21,  1.43it/s]\u001b[A\n",
      " 70%|████████████████████████████▋            | 473/675 [07:05<02:21,  1.43it/s]\u001b[A\n",
      " 70%|████████████████████████████▊            | 474/675 [07:06<02:19,  1.44it/s]\u001b[A\n",
      " 70%|████████████████████████████▊            | 475/675 [07:07<02:21,  1.41it/s]\u001b[A\n",
      " 71%|████████████████████████████▉            | 476/675 [07:07<02:11,  1.52it/s]\u001b[A\n",
      " 71%|████████████████████████████▉            | 477/675 [07:08<02:12,  1.50it/s]\u001b[A\n",
      " 71%|█████████████████████████████            | 478/675 [07:09<02:12,  1.48it/s]\u001b[A\n",
      " 71%|█████████████████████████████            | 479/675 [07:09<02:16,  1.43it/s]\u001b[A\n",
      " 71%|█████████████████████████████▏           | 480/675 [07:10<02:15,  1.44it/s]\u001b[A\n",
      " 71%|█████████████████████████████▏           | 481/675 [07:11<02:17,  1.41it/s]\u001b[A\n",
      " 71%|█████████████████████████████▎           | 482/675 [07:11<02:17,  1.40it/s]\u001b[A\n",
      " 72%|█████████████████████████████▎           | 483/675 [07:12<02:22,  1.35it/s]\u001b[A\n",
      " 72%|█████████████████████████████▍           | 484/675 [07:13<02:19,  1.36it/s]\u001b[A\n",
      " 72%|█████████████████████████████▍           | 485/675 [07:14<02:24,  1.31it/s]\u001b[A\n",
      " 72%|█████████████████████████████▌           | 486/675 [07:14<02:21,  1.33it/s]\u001b[A\n",
      " 72%|█████████████████████████████▌           | 487/675 [07:15<02:18,  1.36it/s]\u001b[A\n",
      " 72%|█████████████████████████████▋           | 488/675 [07:16<02:16,  1.37it/s]\u001b[A\n",
      " 72%|█████████████████████████████▋           | 489/675 [07:17<02:16,  1.36it/s]\u001b[A\n",
      " 73%|█████████████████████████████▊           | 490/675 [07:17<02:14,  1.37it/s]\u001b[A\n",
      " 73%|█████████████████████████████▊           | 491/675 [07:18<02:11,  1.40it/s]\u001b[A\n",
      " 73%|█████████████████████████████▉           | 492/675 [07:19<02:09,  1.41it/s]\u001b[A\n",
      " 73%|█████████████████████████████▉           | 493/675 [07:19<02:01,  1.50it/s]\u001b[A\n",
      " 73%|██████████████████████████████           | 494/675 [07:20<02:03,  1.47it/s]\u001b[A\n",
      " 73%|██████████████████████████████           | 495/675 [07:21<02:04,  1.45it/s]\u001b[A\n",
      " 73%|██████████████████████████████▏          | 496/675 [07:21<02:02,  1.46it/s]\u001b[A\n",
      " 74%|██████████████████████████████▏          | 497/675 [07:22<02:02,  1.45it/s]\u001b[A\n",
      " 74%|██████████████████████████████▏          | 498/675 [07:23<02:05,  1.42it/s]\u001b[A\n",
      " 74%|██████████████████████████████▎          | 499/675 [07:23<02:00,  1.47it/s]\u001b[A\n",
      " 74%|██████████████████████████████▎          | 500/675 [07:24<02:01,  1.44it/s]\u001b[A\n",
      " 74%|██████████████████████████████▍          | 501/675 [07:25<01:56,  1.49it/s]\u001b[A\n",
      " 74%|██████████████████████████████▍          | 502/675 [07:25<01:53,  1.52it/s]\u001b[A\n",
      " 75%|██████████████████████████████▌          | 503/675 [07:26<01:57,  1.46it/s]\u001b[A\n",
      " 75%|██████████████████████████████▌          | 504/675 [07:27<01:51,  1.53it/s]\u001b[A\n",
      " 75%|██████████████████████████████▋          | 505/675 [07:28<01:55,  1.48it/s]\u001b[A\n",
      " 75%|██████████████████████████████▋          | 506/675 [07:28<01:55,  1.47it/s]\u001b[A\n",
      " 75%|██████████████████████████████▊          | 507/675 [07:29<01:55,  1.46it/s]\u001b[A\n",
      " 75%|██████████████████████████████▊          | 508/675 [07:29<01:49,  1.52it/s]\u001b[A\n",
      " 75%|██████████████████████████████▉          | 509/675 [07:30<01:54,  1.45it/s]\u001b[A\n",
      " 76%|██████████████████████████████▉          | 510/675 [07:31<01:54,  1.44it/s]\u001b[A\n",
      " 76%|███████████████████████████████          | 511/675 [07:32<01:55,  1.42it/s]\u001b[A\n",
      " 76%|███████████████████████████████          | 512/675 [07:33<02:00,  1.36it/s]\u001b[A\n",
      " 76%|███████████████████████████████▏         | 513/675 [07:33<02:03,  1.31it/s]\u001b[A\n",
      " 76%|███████████████████████████████▏         | 514/675 [07:34<01:54,  1.40it/s]\u001b[A\n",
      " 76%|███████████████████████████████▎         | 515/675 [07:35<01:54,  1.39it/s]\u001b[A\n",
      " 76%|███████████████████████████████▎         | 516/675 [07:35<01:46,  1.49it/s]\u001b[A\n",
      " 77%|███████████████████████████████▍         | 517/675 [07:36<01:50,  1.43it/s]\u001b[A\n",
      " 77%|███████████████████████████████▍         | 518/675 [07:37<01:53,  1.38it/s]\u001b[A\n",
      " 77%|███████████████████████████████▌         | 519/675 [07:37<01:52,  1.39it/s]\u001b[A\n",
      " 77%|███████████████████████████████▌         | 520/675 [07:38<01:45,  1.46it/s]\u001b[A\n",
      " 77%|███████████████████████████████▋         | 521/675 [07:39<01:47,  1.43it/s]\u001b[A\n",
      " 77%|███████████████████████████████▋         | 522/675 [07:40<01:48,  1.41it/s]\u001b[A\n",
      " 77%|███████████████████████████████▊         | 523/675 [07:40<01:47,  1.41it/s]\u001b[A\n",
      " 78%|███████████████████████████████▊         | 524/675 [07:41<01:46,  1.41it/s]\u001b[A\n",
      " 78%|███████████████████████████████▉         | 525/675 [07:42<01:53,  1.32it/s]\u001b[A\n",
      " 78%|███████████████████████████████▉         | 526/675 [07:43<01:49,  1.36it/s]\u001b[A\n",
      " 78%|████████████████████████████████         | 527/675 [07:43<01:41,  1.46it/s]\u001b[A\n",
      " 78%|████████████████████████████████         | 528/675 [07:44<01:41,  1.45it/s]\u001b[A\n",
      " 78%|████████████████████████████████▏        | 529/675 [07:44<01:34,  1.54it/s]\u001b[A\n",
      " 79%|████████████████████████████████▏        | 530/675 [07:45<01:35,  1.52it/s]\u001b[A\n",
      " 79%|████████████████████████████████▎        | 531/675 [07:46<01:39,  1.45it/s]\u001b[A\n",
      " 79%|████████████████████████████████▎        | 532/675 [07:46<01:38,  1.45it/s]\u001b[A\n",
      " 79%|████████████████████████████████▎        | 533/675 [07:47<01:39,  1.42it/s]\u001b[A\n",
      " 79%|████████████████████████████████▍        | 534/675 [07:48<01:39,  1.42it/s]\u001b[A\n",
      " 79%|████████████████████████████████▍        | 535/675 [07:49<01:38,  1.43it/s]\u001b[A\n",
      " 79%|████████████████████████████████▌        | 536/675 [07:49<01:33,  1.48it/s]\u001b[A\n",
      " 80%|████████████████████████████████▌        | 537/675 [07:50<01:35,  1.45it/s]\u001b[A\n",
      " 80%|████████████████████████████████▋        | 538/675 [07:51<01:29,  1.53it/s]\u001b[A\n",
      " 80%|████████████████████████████████▋        | 539/675 [07:51<01:32,  1.46it/s]\u001b[A\n",
      " 80%|████████████████████████████████▊        | 540/675 [07:52<01:29,  1.51it/s]\u001b[A\n",
      " 80%|████████████████████████████████▊        | 541/675 [07:53<01:29,  1.50it/s]\u001b[A\n",
      " 80%|████████████████████████████████▉        | 542/675 [07:54<02:00,  1.11it/s]\u001b[A\n",
      " 80%|████████████████████████████████▉        | 543/675 [07:55<01:51,  1.19it/s]\u001b[A\n",
      " 81%|█████████████████████████████████        | 544/675 [07:55<01:40,  1.30it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 81%|█████████████████████████████████        | 545/675 [07:56<01:38,  1.32it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▏       | 546/675 [07:57<01:36,  1.34it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▏       | 547/675 [07:57<01:30,  1.41it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▎       | 548/675 [07:58<01:24,  1.50it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▎       | 549/675 [07:59<01:26,  1.46it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▍       | 550/675 [07:59<01:25,  1.46it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▍       | 551/675 [08:00<01:25,  1.44it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▌       | 552/675 [08:01<01:26,  1.42it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▌       | 553/675 [08:01<01:26,  1.42it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▋       | 554/675 [08:02<01:26,  1.40it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▋       | 555/675 [08:03<01:20,  1.50it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▊       | 556/675 [08:04<01:21,  1.46it/s]\u001b[A\n",
      " 83%|█████████████████████████████████▊       | 557/675 [08:04<01:16,  1.55it/s]\u001b[A\n",
      " 83%|█████████████████████████████████▉       | 558/675 [08:05<01:18,  1.48it/s]\u001b[A\n",
      " 83%|█████████████████████████████████▉       | 559/675 [08:06<01:21,  1.42it/s]\u001b[A\n",
      " 83%|██████████████████████████████████       | 560/675 [08:06<01:15,  1.52it/s]\u001b[A\n",
      " 83%|██████████████████████████████████       | 561/675 [08:07<01:12,  1.56it/s]\u001b[A\n",
      " 83%|██████████████████████████████████▏      | 562/675 [08:07<01:09,  1.62it/s]\u001b[A\n",
      " 83%|██████████████████████████████████▏      | 563/675 [08:08<01:16,  1.46it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▎      | 564/675 [08:09<01:16,  1.45it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▎      | 565/675 [08:09<01:12,  1.53it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▍      | 566/675 [08:10<01:09,  1.57it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▍      | 567/675 [08:11<01:14,  1.45it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▌      | 568/675 [08:12<01:28,  1.21it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▌      | 569/675 [08:13<01:23,  1.27it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▌      | 570/675 [08:13<01:20,  1.31it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▋      | 571/675 [08:14<01:13,  1.42it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▋      | 572/675 [08:15<01:12,  1.42it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▊      | 573/675 [08:15<01:13,  1.38it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▊      | 574/675 [08:16<01:09,  1.46it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▉      | 575/675 [08:17<01:09,  1.44it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▉      | 576/675 [08:17<01:10,  1.41it/s]\u001b[A\n",
      " 85%|███████████████████████████████████      | 577/675 [08:18<01:09,  1.42it/s]\u001b[A\n",
      " 86%|███████████████████████████████████      | 578/675 [08:19<01:05,  1.48it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▏     | 579/675 [08:20<01:09,  1.38it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▏     | 580/675 [08:20<01:04,  1.46it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▎     | 581/675 [08:21<01:05,  1.43it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▎     | 582/675 [08:22<01:01,  1.50it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▍     | 583/675 [08:22<01:02,  1.47it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▍     | 584/675 [08:23<01:02,  1.44it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▌     | 585/675 [08:24<01:02,  1.43it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▌     | 586/675 [08:24<01:03,  1.40it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▋     | 587/675 [08:25<01:03,  1.40it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▋     | 588/675 [08:26<01:03,  1.37it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▊     | 589/675 [08:27<01:02,  1.37it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▊     | 590/675 [08:27<01:01,  1.38it/s]\u001b[A\n",
      " 88%|███████████████████████████████████▉     | 591/675 [08:28<01:00,  1.40it/s]\u001b[A\n",
      " 88%|███████████████████████████████████▉     | 592/675 [08:29<00:58,  1.42it/s]\u001b[A\n",
      " 88%|████████████████████████████████████     | 593/675 [08:29<00:54,  1.51it/s]\u001b[A\n",
      " 88%|████████████████████████████████████     | 594/675 [08:30<00:50,  1.59it/s]\u001b[A\n",
      " 88%|████████████████████████████████████▏    | 595/675 [08:30<00:49,  1.62it/s]\u001b[A\n",
      " 88%|████████████████████████████████████▏    | 596/675 [08:31<00:51,  1.54it/s]\u001b[A\n",
      " 88%|████████████████████████████████████▎    | 597/675 [08:32<00:51,  1.51it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▎    | 598/675 [08:33<00:51,  1.49it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▍    | 599/675 [08:33<00:52,  1.45it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▍    | 600/675 [08:34<00:52,  1.43it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▌    | 601/675 [08:35<00:48,  1.52it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▌    | 602/675 [08:35<00:47,  1.54it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▋    | 603/675 [08:36<00:48,  1.49it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▋    | 604/675 [08:37<00:47,  1.49it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▋    | 605/675 [08:37<00:48,  1.44it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▊    | 606/675 [08:38<00:48,  1.41it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▊    | 607/675 [08:39<00:48,  1.40it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▉    | 608/675 [08:39<00:46,  1.45it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▉    | 609/675 [08:40<00:47,  1.39it/s]\u001b[A\n",
      " 90%|█████████████████████████████████████    | 610/675 [08:41<00:47,  1.37it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████    | 611/675 [08:42<00:46,  1.36it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▏   | 612/675 [08:42<00:44,  1.41it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▏   | 613/675 [08:43<00:43,  1.42it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▎   | 614/675 [08:44<00:43,  1.41it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▎   | 615/675 [08:44<00:41,  1.43it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▍   | 616/675 [08:45<00:39,  1.50it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▍   | 617/675 [08:46<00:37,  1.53it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▌   | 618/675 [08:47<00:41,  1.38it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▌   | 619/675 [08:47<00:43,  1.27it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▋   | 620/675 [08:48<00:40,  1.37it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▋   | 621/675 [08:49<00:39,  1.36it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▊   | 622/675 [08:50<00:38,  1.36it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▊   | 623/675 [08:50<00:38,  1.36it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▉   | 624/675 [08:51<00:39,  1.30it/s]\u001b[A\n",
      " 93%|█████████████████████████████████████▉   | 625/675 [08:52<00:35,  1.39it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████   | 626/675 [08:52<00:35,  1.36it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████   | 627/675 [08:53<00:33,  1.42it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████▏  | 628/675 [08:54<00:31,  1.48it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████▏  | 629/675 [08:55<00:33,  1.38it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████▎  | 630/675 [08:55<00:32,  1.37it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████▎  | 631/675 [08:56<00:30,  1.46it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▍  | 632/675 [08:56<00:28,  1.53it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▍  | 633/675 [08:57<00:26,  1.59it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▌  | 634/675 [08:58<00:25,  1.62it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▌  | 635/675 [08:58<00:24,  1.64it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▋  | 636/675 [08:59<00:25,  1.52it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▋  | 637/675 [09:00<00:24,  1.54it/s]\u001b[A\n",
      " 95%|██████████████████████████████████████▊  | 638/675 [09:00<00:25,  1.47it/s]\u001b[A\n",
      " 95%|██████████████████████████████████████▊  | 639/675 [09:01<00:23,  1.51it/s]\u001b[A\n",
      " 95%|██████████████████████████████████████▊  | 640/675 [09:02<00:22,  1.57it/s]\u001b[A\n",
      " 95%|██████████████████████████████████████▉  | 641/675 [09:02<00:22,  1.49it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 95%|██████████████████████████████████████▉  | 642/675 [09:03<00:23,  1.41it/s]\u001b[A\n",
      " 95%|███████████████████████████████████████  | 643/675 [09:04<00:23,  1.34it/s]\u001b[A\n",
      " 95%|███████████████████████████████████████  | 644/675 [09:05<00:21,  1.43it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▏ | 645/675 [09:05<00:21,  1.39it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▏ | 646/675 [09:06<00:19,  1.46it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▎ | 647/675 [09:06<00:18,  1.54it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▎ | 648/675 [09:07<00:16,  1.59it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▍ | 649/675 [09:08<00:17,  1.48it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▍ | 650/675 [09:08<00:16,  1.54it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▌ | 651/675 [09:09<00:15,  1.57it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▌ | 652/675 [09:10<00:14,  1.61it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▋ | 653/675 [09:10<00:13,  1.65it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▋ | 654/675 [09:11<00:13,  1.53it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▊ | 655/675 [09:12<00:14,  1.40it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▊ | 656/675 [09:13<00:14,  1.33it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▉ | 657/675 [09:13<00:13,  1.34it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▉ | 658/675 [09:14<00:12,  1.40it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████ | 659/675 [09:15<00:11,  1.39it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████ | 660/675 [09:16<00:11,  1.32it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████▏| 661/675 [09:16<00:09,  1.40it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████▏| 662/675 [09:22<00:28,  2.19s/it]\u001b[A\n",
      " 98%|████████████████████████████████████████▎| 663/675 [09:22<00:20,  1.71s/it]\u001b[A\n",
      " 98%|████████████████████████████████████████▎| 664/675 [09:23<00:15,  1.42s/it]\u001b[A\n",
      " 99%|████████████████████████████████████████▍| 665/675 [09:24<00:11,  1.20s/it]\u001b[A\n",
      " 99%|████████████████████████████████████████▍| 666/675 [09:25<00:09,  1.06s/it]\u001b[A\n",
      " 99%|████████████████████████████████████████▌| 667/675 [09:25<00:07,  1.04it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▌| 668/675 [09:26<00:05,  1.18it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▋| 669/675 [09:27<00:04,  1.28it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▋| 670/675 [09:27<00:03,  1.31it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▊| 671/675 [09:28<00:02,  1.43it/s]\u001b[A\n",
      "100%|████████████████████████████████████████▊| 672/675 [09:28<00:02,  1.49it/s]\u001b[A\n",
      "100%|████████████████████████████████████████▉| 673/675 [09:29<00:01,  1.53it/s]\u001b[A\n",
      "100%|████████████████████████████████████████▉| 674/675 [09:30<00:00,  1.60it/s]\u001b[A\n",
      "100%|█████████████████████████████████████████| 675/675 [09:30<00:00,  1.18it/s]\u001b[A\n",
      " 29%|████████████▌                               | 2/7 [09:53<28:47, 345.52s/it]\n",
      "  0%|                                                   | 0/283 [00:00<?, ?it/s]\u001b[A\n",
      "  0%|▏                                          | 1/283 [00:00<02:50,  1.65it/s]\u001b[A\n",
      "  1%|▎                                          | 2/283 [00:01<03:18,  1.42it/s]\u001b[A\n",
      "  1%|▍                                          | 3/283 [00:02<03:24,  1.37it/s]\u001b[A\n",
      "  1%|▌                                          | 4/283 [00:02<03:08,  1.48it/s]\u001b[A\n",
      "  2%|▊                                          | 5/283 [00:03<03:28,  1.33it/s]\u001b[A\n",
      "  2%|▉                                          | 6/283 [00:04<03:33,  1.30it/s]\u001b[A\n",
      "  2%|█                                          | 7/283 [00:05<03:37,  1.27it/s]\u001b[A\n",
      "  3%|█▏                                         | 8/283 [00:05<03:15,  1.40it/s]\u001b[A\n",
      "  3%|█▎                                         | 9/283 [00:06<03:16,  1.39it/s]\u001b[A\n",
      "  4%|█▍                                        | 10/283 [00:07<03:04,  1.48it/s]\u001b[A\n",
      "  4%|█▋                                        | 11/283 [00:07<03:10,  1.43it/s]\u001b[A\n",
      "  4%|█▊                                        | 12/283 [00:08<03:12,  1.41it/s]\u001b[A\n",
      "  5%|█▉                                        | 13/283 [00:09<03:02,  1.48it/s]\u001b[A\n",
      "  5%|██                                        | 14/283 [00:09<03:06,  1.44it/s]\u001b[A\n",
      "  5%|██▏                                       | 15/283 [00:10<03:05,  1.44it/s]\u001b[A\n",
      "  6%|██▎                                       | 16/283 [00:11<03:13,  1.38it/s]\u001b[A\n",
      "  6%|██▌                                       | 17/283 [00:12<03:15,  1.36it/s]\u001b[A\n",
      "  6%|██▋                                       | 18/283 [00:12<03:05,  1.43it/s]\u001b[A\n",
      "  7%|██▊                                       | 19/283 [00:13<03:03,  1.44it/s]\u001b[A\n",
      "  7%|██▉                                       | 20/283 [00:14<02:52,  1.52it/s]\u001b[A\n",
      "  7%|███                                       | 21/283 [00:14<02:58,  1.47it/s]\u001b[A\n",
      "  8%|███▎                                      | 22/283 [00:15<02:48,  1.55it/s]\u001b[A\n",
      "  8%|███▍                                      | 23/283 [00:15<02:47,  1.56it/s]\u001b[A\n",
      "  8%|███▌                                      | 24/283 [00:16<02:53,  1.49it/s]\u001b[A\n",
      "  9%|███▋                                      | 25/283 [00:17<02:58,  1.45it/s]\u001b[A\n",
      "  9%|███▊                                      | 26/283 [00:18<03:06,  1.38it/s]\u001b[A\n",
      " 10%|████                                      | 27/283 [00:19<03:06,  1.37it/s]\u001b[A\n",
      " 10%|████▏                                     | 28/283 [00:19<03:03,  1.39it/s]\u001b[A\n",
      " 10%|████▎                                     | 29/283 [00:20<03:01,  1.40it/s]\u001b[A\n",
      " 11%|████▍                                     | 30/283 [00:21<03:03,  1.38it/s]\u001b[A\n",
      " 11%|████▌                                     | 31/283 [00:21<03:05,  1.36it/s]\u001b[A\n",
      " 11%|████▋                                     | 32/283 [00:22<03:06,  1.35it/s]\u001b[A\n",
      " 12%|████▉                                     | 33/283 [00:25<05:20,  1.28s/it]\u001b[A\n",
      " 12%|█████                                     | 34/283 [00:26<04:46,  1.15s/it]\u001b[A\n",
      " 12%|█████▏                                    | 35/283 [00:26<04:13,  1.02s/it]\u001b[A\n",
      " 13%|█████▎                                    | 36/283 [00:27<03:57,  1.04it/s]\u001b[A\n",
      " 13%|█████▍                                    | 37/283 [00:28<03:43,  1.10it/s]\u001b[A\n",
      " 13%|█████▋                                    | 38/283 [00:29<03:34,  1.14it/s]\u001b[A\n",
      " 14%|█████▊                                    | 39/283 [00:29<03:24,  1.19it/s]\u001b[A\n",
      " 14%|█████▉                                    | 40/283 [00:30<03:04,  1.32it/s]\u001b[A\n",
      " 14%|██████                                    | 41/283 [00:31<02:51,  1.41it/s]\u001b[A\n",
      " 15%|██████▏                                   | 42/283 [00:31<02:56,  1.37it/s]\u001b[A\n",
      " 15%|██████▍                                   | 43/283 [00:32<02:50,  1.41it/s]\u001b[A\n",
      " 16%|██████▌                                   | 44/283 [00:33<02:52,  1.39it/s]\u001b[A\n",
      " 16%|██████▋                                   | 45/283 [00:33<02:49,  1.41it/s]\u001b[A\n",
      " 16%|██████▊                                   | 46/283 [00:34<02:46,  1.43it/s]\u001b[A\n",
      " 17%|██████▉                                   | 47/283 [00:35<02:48,  1.40it/s]\u001b[A\n",
      " 17%|███████                                   | 48/283 [00:36<02:46,  1.41it/s]\u001b[A\n",
      " 17%|███████▎                                  | 49/283 [00:36<02:44,  1.42it/s]\u001b[A\n",
      " 18%|███████▍                                  | 50/283 [00:37<02:43,  1.42it/s]\u001b[A\n",
      " 18%|███████▌                                  | 51/283 [00:38<02:43,  1.42it/s]\u001b[A\n",
      " 18%|███████▋                                  | 52/283 [00:38<02:40,  1.44it/s]\u001b[A\n",
      " 19%|███████▊                                  | 53/283 [00:39<02:38,  1.45it/s]\u001b[A\n",
      " 19%|████████                                  | 54/283 [00:40<02:34,  1.49it/s]\u001b[A\n",
      " 19%|████████▏                                 | 55/283 [00:40<02:24,  1.58it/s]\u001b[A\n",
      " 20%|████████▎                                 | 56/283 [00:41<02:28,  1.52it/s]\u001b[A\n",
      " 20%|████████▍                                 | 57/283 [00:41<02:21,  1.60it/s]\u001b[A\n",
      " 20%|████████▌                                 | 58/283 [00:42<02:25,  1.55it/s]\u001b[A\n",
      " 21%|████████▊                                 | 59/283 [00:43<02:32,  1.46it/s]\u001b[A\n",
      " 21%|████████▉                                 | 60/283 [00:44<02:30,  1.48it/s]\u001b[A\n",
      " 22%|█████████                                 | 61/283 [00:44<02:30,  1.47it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 22%|█████████▏                                | 62/283 [00:45<02:30,  1.47it/s]\u001b[A\n",
      " 22%|█████████▎                                | 63/283 [00:46<02:34,  1.43it/s]\u001b[A\n",
      " 23%|█████████▍                                | 64/283 [00:46<02:34,  1.41it/s]\u001b[A\n",
      " 23%|█████████▋                                | 65/283 [00:47<02:32,  1.42it/s]\u001b[A\n",
      " 23%|█████████▊                                | 66/283 [00:48<02:33,  1.41it/s]\u001b[A\n",
      " 24%|█████████▉                                | 67/283 [00:48<02:25,  1.49it/s]\u001b[A\n",
      " 24%|██████████                                | 68/283 [00:49<02:29,  1.44it/s]\u001b[A\n",
      " 24%|██████████▏                               | 69/283 [00:50<02:45,  1.29it/s]\u001b[A\n",
      " 25%|██████████▍                               | 70/283 [00:51<02:30,  1.42it/s]\u001b[A\n",
      " 25%|██████████▌                               | 71/283 [00:51<02:28,  1.43it/s]\u001b[A\n",
      " 25%|██████████▋                               | 72/283 [00:52<02:27,  1.43it/s]\u001b[A\n",
      " 26%|██████████▊                               | 73/283 [00:53<02:27,  1.42it/s]\u001b[A\n",
      " 26%|██████████▉                               | 74/283 [00:54<02:31,  1.38it/s]\u001b[A\n",
      " 27%|███████████▏                              | 75/283 [00:54<02:28,  1.40it/s]\u001b[A\n",
      " 27%|███████████▎                              | 76/283 [00:55<02:28,  1.40it/s]\u001b[A\n",
      " 27%|███████████▍                              | 77/283 [00:56<02:27,  1.39it/s]\u001b[A\n",
      " 28%|███████████▌                              | 78/283 [00:56<02:18,  1.48it/s]\u001b[A\n",
      " 28%|███████████▋                              | 79/283 [00:57<02:12,  1.54it/s]\u001b[A\n",
      " 28%|███████████▊                              | 80/283 [00:58<02:15,  1.49it/s]\u001b[A\n",
      " 29%|████████████                              | 81/283 [00:58<02:16,  1.48it/s]\u001b[A\n",
      " 29%|████████████▏                             | 82/283 [00:59<02:16,  1.48it/s]\u001b[A\n",
      " 29%|████████████▎                             | 83/283 [01:00<02:15,  1.47it/s]\u001b[A\n",
      " 30%|████████████▍                             | 84/283 [01:00<02:16,  1.46it/s]\u001b[A\n",
      " 30%|████████████▌                             | 85/283 [01:01<02:08,  1.54it/s]\u001b[A\n",
      " 30%|████████████▊                             | 86/283 [01:02<02:10,  1.51it/s]\u001b[A\n",
      " 31%|████████████▉                             | 87/283 [01:02<02:11,  1.49it/s]\u001b[A\n",
      " 31%|█████████████                             | 88/283 [01:03<02:13,  1.46it/s]\u001b[A\n",
      " 31%|█████████████▏                            | 89/283 [01:04<02:14,  1.44it/s]\u001b[A\n",
      " 32%|█████████████▎                            | 90/283 [01:04<02:16,  1.42it/s]\u001b[A\n",
      " 32%|█████████████▌                            | 91/283 [01:05<02:14,  1.42it/s]\u001b[A\n",
      " 33%|█████████████▋                            | 92/283 [01:06<02:14,  1.42it/s]\u001b[A\n",
      " 33%|█████████████▊                            | 93/283 [01:07<02:14,  1.41it/s]\u001b[A\n",
      " 33%|█████████████▉                            | 94/283 [01:07<02:12,  1.42it/s]\u001b[A\n",
      " 34%|██████████████                            | 95/283 [01:08<02:05,  1.50it/s]\u001b[A\n",
      " 34%|██████████████▏                           | 96/283 [01:09<02:09,  1.44it/s]\u001b[A\n",
      " 34%|██████████████▍                           | 97/283 [01:09<02:13,  1.39it/s]\u001b[A\n",
      " 35%|██████████████▌                           | 98/283 [01:10<02:12,  1.39it/s]\u001b[A\n",
      " 35%|██████████████▋                           | 99/283 [01:11<02:14,  1.37it/s]\u001b[A\n",
      " 35%|██████████████▍                          | 100/283 [01:12<02:16,  1.34it/s]\u001b[A\n",
      " 36%|██████████████▋                          | 101/283 [01:12<02:13,  1.36it/s]\u001b[A\n",
      " 36%|██████████████▊                          | 102/283 [01:13<02:10,  1.39it/s]\u001b[A\n",
      " 36%|██████████████▉                          | 103/283 [01:14<02:12,  1.36it/s]\u001b[A\n",
      " 37%|███████████████                          | 104/283 [01:14<02:03,  1.44it/s]\u001b[A\n",
      " 37%|███████████████▏                         | 105/283 [01:15<01:54,  1.55it/s]\u001b[A\n",
      " 37%|███████████████▎                         | 106/283 [01:16<01:51,  1.58it/s]\u001b[A\n",
      " 38%|███████████████▌                         | 107/283 [01:16<01:53,  1.54it/s]\u001b[A\n",
      " 38%|███████████████▋                         | 108/283 [01:17<01:58,  1.48it/s]\u001b[A\n",
      " 39%|███████████████▊                         | 109/283 [01:18<01:51,  1.55it/s]\u001b[A\n",
      " 39%|███████████████▉                         | 110/283 [01:18<01:52,  1.53it/s]\u001b[A\n",
      " 39%|████████████████                         | 111/283 [01:19<01:58,  1.45it/s]\u001b[A\n",
      " 40%|████████████████▏                        | 112/283 [01:20<01:59,  1.43it/s]\u001b[A\n",
      " 40%|████████████████▎                        | 113/283 [01:20<01:59,  1.43it/s]\u001b[A\n",
      " 40%|████████████████▌                        | 114/283 [01:21<01:58,  1.42it/s]\u001b[A\n",
      " 41%|████████████████▋                        | 115/283 [01:22<02:15,  1.24it/s]\u001b[A\n",
      " 41%|████████████████▊                        | 116/283 [01:23<02:09,  1.29it/s]\u001b[A\n",
      " 41%|████████████████▉                        | 117/283 [01:24<02:07,  1.30it/s]\u001b[A\n",
      " 42%|█████████████████                        | 118/283 [01:24<02:02,  1.35it/s]\u001b[A\n",
      " 42%|█████████████████▏                       | 119/283 [01:25<01:54,  1.44it/s]\u001b[A\n",
      " 42%|█████████████████▍                       | 120/283 [01:26<01:55,  1.42it/s]\u001b[A\n",
      " 43%|█████████████████▌                       | 121/283 [01:26<01:55,  1.40it/s]\u001b[A\n",
      " 43%|█████████████████▋                       | 122/283 [01:27<01:55,  1.39it/s]\u001b[A\n",
      " 43%|█████████████████▊                       | 123/283 [01:28<02:00,  1.33it/s]\u001b[A\n",
      " 44%|█████████████████▉                       | 124/283 [01:29<01:57,  1.35it/s]\u001b[A\n",
      " 44%|██████████████████                       | 125/283 [01:29<01:47,  1.47it/s]\u001b[A\n",
      " 45%|██████████████████▎                      | 126/283 [01:30<01:48,  1.44it/s]\u001b[A\n",
      " 45%|██████████████████▍                      | 127/283 [01:30<01:40,  1.55it/s]\u001b[A\n",
      " 45%|██████████████████▌                      | 128/283 [01:31<01:43,  1.49it/s]\u001b[A\n",
      " 46%|██████████████████▋                      | 129/283 [01:32<01:45,  1.47it/s]\u001b[A\n",
      " 46%|██████████████████▊                      | 130/283 [01:32<01:38,  1.56it/s]\u001b[A\n",
      " 46%|██████████████████▉                      | 131/283 [01:33<01:39,  1.53it/s]\u001b[A\n",
      " 47%|███████████████████                      | 132/283 [01:34<01:40,  1.50it/s]\u001b[A\n",
      " 47%|███████████████████▎                     | 133/283 [01:34<01:38,  1.52it/s]\u001b[A\n",
      " 47%|███████████████████▍                     | 134/283 [01:35<01:40,  1.48it/s]\u001b[A\n",
      " 48%|███████████████████▌                     | 135/283 [01:36<01:41,  1.46it/s]\u001b[A\n",
      " 48%|███████████████████▋                     | 136/283 [01:36<01:34,  1.55it/s]\u001b[A\n",
      " 48%|███████████████████▊                     | 137/283 [01:37<01:30,  1.61it/s]\u001b[A\n",
      " 49%|███████████████████▉                     | 138/283 [01:38<01:28,  1.63it/s]\u001b[A\n",
      " 49%|████████████████████▏                    | 139/283 [01:38<01:26,  1.66it/s]\u001b[A\n",
      " 49%|████████████████████▎                    | 140/283 [01:39<01:30,  1.57it/s]\u001b[A\n",
      " 50%|████████████████████▍                    | 141/283 [01:40<01:33,  1.52it/s]\u001b[A\n",
      " 50%|████████████████████▌                    | 142/283 [01:40<01:34,  1.49it/s]\u001b[A\n",
      " 51%|████████████████████▋                    | 143/283 [01:41<01:30,  1.55it/s]\u001b[A\n",
      " 51%|████████████████████▊                    | 144/283 [01:41<01:27,  1.59it/s]\u001b[A\n",
      " 51%|█████████████████████                    | 145/283 [01:42<01:26,  1.60it/s]\u001b[A\n",
      " 52%|█████████████████████▏                   | 146/283 [01:43<01:29,  1.53it/s]\u001b[A\n",
      " 52%|█████████████████████▎                   | 147/283 [01:43<01:32,  1.48it/s]\u001b[A\n",
      " 52%|█████████████████████▍                   | 148/283 [01:44<01:26,  1.55it/s]\u001b[A\n",
      " 53%|█████████████████████▌                   | 149/283 [01:45<01:31,  1.46it/s]\u001b[A\n",
      " 53%|█████████████████████▋                   | 150/283 [01:46<01:32,  1.43it/s]\u001b[A\n",
      " 53%|█████████████████████▉                   | 151/283 [01:46<01:32,  1.43it/s]\u001b[A\n",
      " 54%|██████████████████████                   | 152/283 [01:47<01:27,  1.49it/s]\u001b[A\n",
      " 54%|██████████████████████▏                  | 153/283 [01:48<01:29,  1.45it/s]\u001b[A\n",
      " 54%|██████████████████████▎                  | 154/283 [01:48<01:25,  1.51it/s]\u001b[A\n",
      " 55%|██████████████████████▍                  | 155/283 [01:49<01:22,  1.54it/s]\u001b[A\n",
      " 55%|██████████████████████▌                  | 156/283 [01:49<01:23,  1.53it/s]\u001b[A\n",
      " 55%|██████████████████████▋                  | 157/283 [01:50<01:26,  1.46it/s]\u001b[A\n",
      " 56%|██████████████████████▉                  | 158/283 [01:51<01:22,  1.51it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 56%|███████████████████████                  | 159/283 [01:51<01:19,  1.56it/s]\u001b[A\n",
      " 57%|███████████████████████▏                 | 160/283 [01:52<01:22,  1.49it/s]\u001b[A\n",
      " 57%|███████████████████████▎                 | 161/283 [01:53<01:23,  1.46it/s]\u001b[A\n",
      " 57%|███████████████████████▍                 | 162/283 [01:53<01:18,  1.53it/s]\u001b[A\n",
      " 58%|███████████████████████▌                 | 163/283 [01:54<01:22,  1.46it/s]\u001b[A\n",
      " 58%|███████████████████████▊                 | 164/283 [01:55<01:22,  1.45it/s]\u001b[A\n",
      " 58%|███████████████████████▉                 | 165/283 [01:56<01:21,  1.44it/s]\u001b[A\n",
      " 59%|████████████████████████                 | 166/283 [01:56<01:20,  1.45it/s]\u001b[A\n",
      " 59%|████████████████████████▏                | 167/283 [01:57<01:19,  1.45it/s]\u001b[A\n",
      " 59%|████████████████████████▎                | 168/283 [01:58<01:23,  1.37it/s]\u001b[A\n",
      " 60%|████████████████████████▍                | 169/283 [01:58<01:17,  1.47it/s]\u001b[A\n",
      " 60%|████████████████████████▋                | 170/283 [01:59<01:17,  1.45it/s]\u001b[A\n",
      " 60%|████████████████████████▊                | 171/283 [02:00<01:25,  1.31it/s]\u001b[A\n",
      " 61%|████████████████████████▉                | 172/283 [02:01<01:23,  1.32it/s]\u001b[A\n",
      " 61%|█████████████████████████                | 173/283 [02:01<01:21,  1.36it/s]\u001b[A\n",
      " 61%|█████████████████████████▏               | 174/283 [02:02<01:20,  1.36it/s]\u001b[A\n",
      " 62%|█████████████████████████▎               | 175/283 [02:03<01:20,  1.35it/s]\u001b[A\n",
      " 62%|█████████████████████████▍               | 176/283 [02:04<01:20,  1.33it/s]\u001b[A\n",
      " 63%|█████████████████████████▋               | 177/283 [02:04<01:19,  1.34it/s]\u001b[A\n",
      " 63%|█████████████████████████▊               | 178/283 [02:05<01:12,  1.46it/s]\u001b[A\n",
      " 63%|█████████████████████████▉               | 179/283 [02:06<01:11,  1.45it/s]\u001b[A\n",
      " 64%|██████████████████████████               | 180/283 [02:07<01:14,  1.39it/s]\u001b[A\n",
      " 64%|██████████████████████████▏              | 181/283 [02:07<01:12,  1.40it/s]\u001b[A\n",
      " 64%|██████████████████████████▎              | 182/283 [02:08<01:13,  1.38it/s]\u001b[A\n",
      " 65%|██████████████████████████▌              | 183/283 [02:09<01:13,  1.36it/s]\u001b[A\n",
      " 65%|██████████████████████████▋              | 184/283 [02:09<01:12,  1.37it/s]\u001b[A\n",
      " 65%|██████████████████████████▊              | 185/283 [02:10<01:16,  1.29it/s]\u001b[A\n",
      " 66%|██████████████████████████▉              | 186/283 [02:11<01:16,  1.27it/s]\u001b[A\n",
      " 66%|███████████████████████████              | 187/283 [02:12<01:08,  1.40it/s]\u001b[A\n",
      " 66%|███████████████████████████▏             | 188/283 [02:12<01:07,  1.41it/s]\u001b[A\n",
      " 67%|███████████████████████████▍             | 189/283 [02:13<01:09,  1.36it/s]\u001b[A\n",
      " 67%|███████████████████████████▌             | 190/283 [02:14<01:08,  1.37it/s]\u001b[A\n",
      " 67%|███████████████████████████▋             | 191/283 [02:15<01:12,  1.26it/s]\u001b[A\n",
      " 68%|███████████████████████████▊             | 192/283 [02:16<01:09,  1.31it/s]\u001b[A\n",
      " 68%|███████████████████████████▉             | 193/283 [02:16<01:03,  1.41it/s]\u001b[A\n",
      " 69%|████████████████████████████             | 194/283 [02:17<01:04,  1.38it/s]\u001b[A\n",
      " 69%|████████████████████████████▎            | 195/283 [02:18<01:03,  1.39it/s]\u001b[A\n",
      " 69%|████████████████████████████▍            | 196/283 [02:18<01:04,  1.34it/s]\u001b[A\n",
      " 70%|████████████████████████████▌            | 197/283 [02:19<01:02,  1.38it/s]\u001b[A\n",
      " 70%|████████████████████████████▋            | 198/283 [02:20<00:57,  1.48it/s]\u001b[A\n",
      " 70%|████████████████████████████▊            | 199/283 [02:20<00:58,  1.44it/s]\u001b[A\n",
      " 71%|████████████████████████████▉            | 200/283 [02:21<00:54,  1.51it/s]\u001b[A\n",
      " 71%|█████████████████████████████            | 201/283 [02:22<00:55,  1.48it/s]\u001b[A\n",
      " 71%|█████████████████████████████▎           | 202/283 [02:22<00:56,  1.44it/s]\u001b[A\n",
      " 72%|█████████████████████████████▍           | 203/283 [02:23<00:56,  1.42it/s]\u001b[A\n",
      " 72%|█████████████████████████████▌           | 204/283 [02:24<00:56,  1.41it/s]\u001b[A\n",
      " 72%|█████████████████████████████▋           | 205/283 [02:25<00:54,  1.42it/s]\u001b[A\n",
      " 73%|█████████████████████████████▊           | 206/283 [02:25<00:51,  1.49it/s]\u001b[A\n",
      " 73%|█████████████████████████████▉           | 207/283 [02:26<00:48,  1.55it/s]\u001b[A\n",
      " 73%|██████████████████████████████▏          | 208/283 [02:26<00:50,  1.49it/s]\u001b[A\n",
      " 74%|██████████████████████████████▎          | 209/283 [02:27<00:51,  1.43it/s]\u001b[A\n",
      " 74%|██████████████████████████████▍          | 210/283 [02:28<00:51,  1.40it/s]\u001b[A\n",
      " 75%|██████████████████████████████▌          | 211/283 [02:29<00:47,  1.50it/s]\u001b[A\n",
      " 75%|██████████████████████████████▋          | 212/283 [02:29<00:51,  1.38it/s]\u001b[A\n",
      " 75%|██████████████████████████████▊          | 213/283 [02:30<00:47,  1.46it/s]\u001b[A\n",
      " 76%|███████████████████████████████          | 214/283 [02:31<00:47,  1.44it/s]\u001b[A\n",
      " 76%|███████████████████████████████▏         | 215/283 [02:31<00:45,  1.51it/s]\u001b[A\n",
      " 76%|███████████████████████████████▎         | 216/283 [02:32<00:44,  1.49it/s]\u001b[A\n",
      " 77%|███████████████████████████████▍         | 217/283 [02:33<00:46,  1.43it/s]\u001b[A\n",
      " 77%|███████████████████████████████▌         | 218/283 [02:33<00:43,  1.50it/s]\u001b[A\n",
      " 77%|███████████████████████████████▋         | 219/283 [02:34<00:42,  1.50it/s]\u001b[A\n",
      " 78%|███████████████████████████████▊         | 220/283 [02:35<00:42,  1.49it/s]\u001b[A\n",
      " 78%|████████████████████████████████         | 221/283 [02:35<00:42,  1.47it/s]\u001b[A\n",
      " 78%|████████████████████████████████▏        | 222/283 [02:36<00:43,  1.42it/s]\u001b[A\n",
      " 79%|████████████████████████████████▎        | 223/283 [02:37<00:42,  1.40it/s]\u001b[A\n",
      " 79%|████████████████████████████████▍        | 224/283 [02:38<00:43,  1.36it/s]\u001b[A\n",
      " 80%|████████████████████████████████▌        | 225/283 [02:38<00:41,  1.40it/s]\u001b[A\n",
      " 80%|████████████████████████████████▋        | 226/283 [02:39<00:40,  1.40it/s]\u001b[A\n",
      " 80%|████████████████████████████████▉        | 227/283 [02:40<00:37,  1.49it/s]\u001b[A\n",
      " 81%|█████████████████████████████████        | 228/283 [02:40<00:38,  1.45it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▏       | 229/283 [02:41<00:35,  1.52it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▎       | 230/283 [02:41<00:33,  1.57it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▍       | 231/283 [02:42<00:32,  1.62it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▌       | 232/283 [02:43<00:30,  1.66it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▊       | 233/283 [02:43<00:31,  1.58it/s]\u001b[A\n",
      " 83%|█████████████████████████████████▉       | 234/283 [02:44<00:29,  1.63it/s]\u001b[A\n",
      " 83%|██████████████████████████████████       | 235/283 [02:45<00:31,  1.53it/s]\u001b[A\n",
      " 83%|██████████████████████████████████▏      | 236/283 [02:45<00:32,  1.46it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▎      | 237/283 [02:46<00:31,  1.45it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▍      | 238/283 [02:47<00:33,  1.35it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▋      | 239/283 [02:48<00:31,  1.38it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▊      | 240/283 [02:49<00:35,  1.22it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▉      | 241/283 [02:49<00:30,  1.36it/s]\u001b[A\n",
      " 86%|███████████████████████████████████      | 242/283 [02:50<00:30,  1.37it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▏     | 243/283 [02:51<00:27,  1.44it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▎     | 244/283 [02:51<00:25,  1.53it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▍     | 245/283 [02:52<00:24,  1.58it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▋     | 246/283 [02:52<00:24,  1.53it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▊     | 247/283 [02:53<00:22,  1.63it/s]\u001b[A\n",
      " 88%|███████████████████████████████████▉     | 248/283 [02:54<00:22,  1.56it/s]\u001b[A\n",
      " 88%|████████████████████████████████████     | 249/283 [02:54<00:21,  1.59it/s]\u001b[A\n",
      " 88%|████████████████████████████████████▏    | 250/283 [02:55<00:21,  1.55it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▎    | 251/283 [02:55<00:19,  1.60it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▌    | 252/283 [02:56<00:18,  1.64it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▋    | 253/283 [02:57<00:19,  1.58it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▊    | 254/283 [02:57<00:18,  1.60it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▉    | 255/283 [02:58<00:18,  1.53it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 90%|█████████████████████████████████████    | 256/283 [02:59<00:17,  1.56it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▏   | 257/283 [02:59<00:16,  1.59it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▍   | 258/283 [03:00<00:16,  1.54it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▌   | 259/283 [03:01<00:16,  1.48it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▋   | 260/283 [03:01<00:15,  1.53it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▊   | 261/283 [03:02<00:13,  1.58it/s]\u001b[A\n",
      " 93%|█████████████████████████████████████▉   | 262/283 [03:03<00:13,  1.60it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████   | 263/283 [03:03<00:12,  1.65it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████▏  | 264/283 [03:04<00:12,  1.51it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▍  | 265/283 [03:04<00:11,  1.60it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▌  | 266/283 [03:05<00:11,  1.54it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▋  | 267/283 [03:06<00:10,  1.53it/s]\u001b[A\n",
      " 95%|██████████████████████████████████████▊  | 268/283 [03:06<00:09,  1.60it/s]\u001b[A\n",
      " 95%|██████████████████████████████████████▉  | 269/283 [03:07<00:09,  1.54it/s]\u001b[A\n",
      " 95%|███████████████████████████████████████  | 270/283 [03:08<00:08,  1.58it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▎ | 271/283 [03:08<00:07,  1.52it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▍ | 272/283 [03:09<00:06,  1.58it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▌ | 273/283 [03:09<00:06,  1.64it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▋ | 274/283 [03:10<00:05,  1.56it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▊ | 275/283 [03:11<00:05,  1.59it/s]\u001b[A\n",
      " 98%|███████████████████████████████████████▉ | 276/283 [03:11<00:04,  1.65it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████▏| 277/283 [03:12<00:03,  1.52it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████▎| 278/283 [03:13<00:03,  1.50it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▍| 279/283 [03:13<00:02,  1.55it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▌| 280/283 [03:14<00:02,  1.47it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▋| 281/283 [03:15<00:01,  1.44it/s]\u001b[A\n",
      "100%|████████████████████████████████████████▊| 282/283 [03:15<00:00,  1.52it/s]\u001b[A\n",
      "100%|█████████████████████████████████████████| 283/283 [03:16<00:00,  1.44it/s]\u001b[A\n",
      " 43%|██████████████████▊                         | 3/7 [13:11<18:32, 278.10s/it]\n",
      "  0%|                                                   | 0/254 [00:00<?, ?it/s]\u001b[A\n",
      "  0%|▏                                          | 1/254 [00:00<03:36,  1.17it/s]\u001b[A\n",
      "  1%|▎                                          | 2/254 [00:01<02:56,  1.43it/s]\u001b[A\n",
      "  1%|▌                                          | 3/254 [00:02<02:39,  1.57it/s]\u001b[A\n",
      "  2%|▋                                          | 4/254 [00:02<02:31,  1.65it/s]\u001b[A\n",
      "  2%|▊                                          | 5/254 [00:03<02:27,  1.69it/s]\u001b[A\n",
      "  2%|█                                          | 6/254 [00:03<02:23,  1.72it/s]\u001b[A\n",
      "  3%|█▏                                         | 7/254 [00:04<02:23,  1.72it/s]\u001b[A\n",
      "  3%|█▎                                         | 8/254 [00:04<02:24,  1.71it/s]\u001b[A\n",
      "  4%|█▌                                         | 9/254 [00:05<02:32,  1.61it/s]\u001b[A\n",
      "  4%|█▋                                        | 10/254 [00:06<02:38,  1.54it/s]\u001b[A\n",
      "  4%|█▊                                        | 11/254 [00:07<02:42,  1.49it/s]\u001b[A\n",
      "  5%|█▉                                        | 12/254 [00:07<02:45,  1.47it/s]\u001b[A\n",
      "  5%|██▏                                       | 13/254 [00:08<02:45,  1.46it/s]\u001b[A\n",
      "  6%|██▎                                       | 14/254 [00:09<02:48,  1.42it/s]\u001b[A\n",
      "  6%|██▍                                       | 15/254 [00:09<02:39,  1.50it/s]\u001b[A\n",
      "  6%|██▋                                       | 16/254 [00:10<02:51,  1.38it/s]\u001b[A\n",
      "  7%|██▊                                       | 17/254 [00:11<03:05,  1.28it/s]\u001b[A\n",
      "  7%|██▉                                       | 18/254 [00:12<03:07,  1.26it/s]\u001b[A\n",
      "  7%|███▏                                      | 19/254 [00:13<03:02,  1.28it/s]\u001b[A\n",
      "  8%|███▎                                      | 20/254 [00:13<02:46,  1.41it/s]\u001b[A\n",
      "  8%|███▍                                      | 21/254 [00:14<02:48,  1.39it/s]\u001b[A\n",
      "  9%|███▋                                      | 22/254 [00:15<02:49,  1.37it/s]\u001b[A\n",
      "  9%|███▊                                      | 23/254 [00:15<02:46,  1.39it/s]\u001b[A\n",
      "  9%|███▉                                      | 24/254 [00:16<02:48,  1.37it/s]\u001b[A\n",
      " 10%|████▏                                     | 25/254 [00:17<02:47,  1.37it/s]\u001b[A\n",
      " 10%|████▎                                     | 26/254 [00:18<02:47,  1.36it/s]\u001b[A\n",
      " 11%|████▍                                     | 27/254 [00:18<02:39,  1.43it/s]\u001b[A\n",
      " 11%|████▋                                     | 28/254 [00:19<02:40,  1.41it/s]\u001b[A\n",
      " 11%|████▊                                     | 29/254 [00:20<02:41,  1.39it/s]\u001b[A\n",
      " 12%|████▉                                     | 30/254 [00:20<02:44,  1.36it/s]\u001b[A\n",
      " 12%|█████▏                                    | 31/254 [00:21<02:42,  1.37it/s]\u001b[A\n",
      " 13%|█████▎                                    | 32/254 [00:22<02:39,  1.39it/s]\u001b[A\n",
      " 13%|█████▍                                    | 33/254 [00:22<02:35,  1.42it/s]\u001b[A\n",
      " 13%|█████▌                                    | 34/254 [00:23<02:37,  1.40it/s]\u001b[A\n",
      " 14%|█████▊                                    | 35/254 [00:24<02:38,  1.38it/s]\u001b[A\n",
      " 14%|█████▉                                    | 36/254 [00:25<02:36,  1.39it/s]\u001b[A\n",
      " 15%|██████                                    | 37/254 [00:25<02:34,  1.41it/s]\u001b[A\n",
      " 15%|██████▎                                   | 38/254 [00:26<02:32,  1.41it/s]\u001b[A\n",
      " 15%|██████▍                                   | 39/254 [00:27<02:25,  1.48it/s]\u001b[A\n",
      " 16%|██████▌                                   | 40/254 [00:27<02:27,  1.45it/s]\u001b[A\n",
      " 16%|██████▊                                   | 41/254 [00:28<02:27,  1.45it/s]\u001b[A\n",
      " 17%|██████▉                                   | 42/254 [00:29<02:18,  1.53it/s]\u001b[A\n",
      " 17%|███████                                   | 43/254 [00:30<03:12,  1.10it/s]\u001b[A\n",
      " 17%|███████▎                                  | 44/254 [00:31<02:55,  1.19it/s]\u001b[A\n",
      " 18%|███████▍                                  | 45/254 [00:32<02:46,  1.25it/s]\u001b[A\n",
      " 18%|███████▌                                  | 46/254 [00:32<02:37,  1.32it/s]\u001b[A\n",
      " 19%|███████▊                                  | 47/254 [00:33<02:32,  1.36it/s]\u001b[A\n",
      " 19%|███████▉                                  | 48/254 [00:34<02:31,  1.36it/s]\u001b[A\n",
      " 19%|████████                                  | 49/254 [00:34<02:32,  1.35it/s]\u001b[A\n",
      " 20%|████████▎                                 | 50/254 [00:35<02:27,  1.38it/s]\u001b[A\n",
      " 20%|████████▍                                 | 51/254 [00:36<02:19,  1.46it/s]\u001b[A\n",
      " 20%|████████▌                                 | 52/254 [00:36<02:20,  1.44it/s]\u001b[A\n",
      " 21%|████████▊                                 | 53/254 [00:37<02:20,  1.44it/s]\u001b[A\n",
      " 21%|████████▉                                 | 54/254 [00:38<02:21,  1.41it/s]\u001b[A\n",
      " 22%|█████████                                 | 55/254 [00:39<02:22,  1.39it/s]\u001b[A\n",
      " 22%|█████████▎                                | 56/254 [00:39<02:27,  1.34it/s]\u001b[A\n",
      " 22%|█████████▍                                | 57/254 [00:40<02:24,  1.36it/s]\u001b[A\n",
      " 23%|█████████▌                                | 58/254 [00:41<02:21,  1.39it/s]\u001b[A\n",
      " 23%|█████████▊                                | 59/254 [00:42<02:21,  1.38it/s]\u001b[A\n",
      " 24%|█████████▉                                | 60/254 [00:42<02:20,  1.38it/s]\u001b[A\n",
      " 24%|██████████                                | 61/254 [00:43<02:10,  1.47it/s]\u001b[A\n",
      " 24%|██████████▎                               | 62/254 [00:43<02:04,  1.54it/s]\u001b[A\n",
      " 25%|██████████▍                               | 63/254 [00:44<02:11,  1.46it/s]\u001b[A\n",
      " 25%|██████████▌                               | 64/254 [00:45<02:13,  1.43it/s]\u001b[A\n",
      " 26%|██████████▋                               | 65/254 [00:45<02:05,  1.50it/s]\u001b[A\n",
      " 26%|██████████▉                               | 66/254 [00:46<02:07,  1.47it/s]\u001b[A\n",
      " 26%|███████████                               | 67/254 [00:47<02:08,  1.46it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 27%|███████████▏                              | 68/254 [00:47<01:59,  1.56it/s]\u001b[A\n",
      " 27%|███████████▍                              | 69/254 [00:48<02:05,  1.48it/s]\u001b[A\n",
      " 28%|███████████▌                              | 70/254 [00:49<01:58,  1.55it/s]\u001b[A\n",
      " 28%|███████████▋                              | 71/254 [00:49<01:59,  1.53it/s]\u001b[A\n",
      " 28%|███████████▉                              | 72/254 [00:50<02:02,  1.49it/s]\u001b[A\n",
      " 29%|████████████                              | 73/254 [00:51<02:04,  1.46it/s]\u001b[A\n",
      " 29%|████████████▏                             | 74/254 [00:52<02:05,  1.44it/s]\u001b[A\n",
      " 30%|████████████▍                             | 75/254 [00:52<02:05,  1.43it/s]\u001b[A\n",
      " 30%|████████████▌                             | 76/254 [00:53<02:09,  1.38it/s]\u001b[A\n",
      " 30%|████████████▋                             | 77/254 [00:54<02:05,  1.41it/s]\u001b[A\n",
      " 31%|████████████▉                             | 78/254 [00:54<01:56,  1.51it/s]\u001b[A\n",
      " 31%|█████████████                             | 79/254 [00:55<01:56,  1.50it/s]\u001b[A\n",
      " 31%|█████████████▏                            | 80/254 [00:56<01:56,  1.49it/s]\u001b[A\n",
      " 32%|█████████████▍                            | 81/254 [00:56<02:00,  1.43it/s]\u001b[A\n",
      " 32%|█████████████▌                            | 82/254 [00:57<01:53,  1.51it/s]\u001b[A\n",
      " 33%|█████████████▋                            | 83/254 [00:58<02:02,  1.40it/s]\u001b[A\n",
      " 33%|█████████████▉                            | 84/254 [00:59<02:03,  1.37it/s]\u001b[A\n",
      " 33%|██████████████                            | 85/254 [00:59<02:04,  1.36it/s]\u001b[A\n",
      " 34%|██████████████▏                           | 86/254 [01:00<01:59,  1.41it/s]\u001b[A\n",
      " 34%|██████████████▍                           | 87/254 [01:01<01:58,  1.41it/s]\u001b[A\n",
      " 35%|██████████████▌                           | 88/254 [01:01<01:56,  1.42it/s]\u001b[A\n",
      " 35%|██████████████▋                           | 89/254 [01:02<01:56,  1.42it/s]\u001b[A\n",
      " 35%|██████████████▉                           | 90/254 [01:03<01:50,  1.48it/s]\u001b[A\n",
      " 36%|███████████████                           | 91/254 [01:03<01:44,  1.56it/s]\u001b[A\n",
      " 36%|███████████████▏                          | 92/254 [01:04<01:41,  1.60it/s]\u001b[A\n",
      " 37%|███████████████▍                          | 93/254 [01:05<01:42,  1.57it/s]\u001b[A\n",
      " 37%|███████████████▌                          | 94/254 [01:05<01:43,  1.55it/s]\u001b[A\n",
      " 37%|███████████████▋                          | 95/254 [01:06<01:44,  1.53it/s]\u001b[A\n",
      " 38%|███████████████▊                          | 96/254 [01:06<01:41,  1.56it/s]\u001b[A\n",
      " 38%|████████████████                          | 97/254 [01:07<01:37,  1.61it/s]\u001b[A\n",
      " 39%|████████████████▏                         | 98/254 [01:08<01:41,  1.54it/s]\u001b[A\n",
      " 39%|████████████████▎                         | 99/254 [01:09<01:45,  1.47it/s]\u001b[A\n",
      " 39%|████████████████▏                        | 100/254 [01:09<01:36,  1.59it/s]\u001b[A\n",
      " 40%|████████████████▎                        | 101/254 [01:10<01:41,  1.51it/s]\u001b[A\n",
      " 40%|████████████████▍                        | 102/254 [01:10<01:44,  1.46it/s]\u001b[A\n",
      " 41%|████████████████▋                        | 103/254 [01:11<01:55,  1.31it/s]\u001b[A\n",
      " 41%|████████████████▊                        | 104/254 [01:12<01:45,  1.42it/s]\u001b[A\n",
      " 41%|████████████████▉                        | 105/254 [01:13<01:45,  1.41it/s]\u001b[A\n",
      " 42%|█████████████████                        | 106/254 [01:13<01:44,  1.42it/s]\u001b[A\n",
      " 42%|█████████████████▎                       | 107/254 [01:14<01:43,  1.42it/s]\u001b[A\n",
      " 43%|█████████████████▍                       | 108/254 [01:15<01:41,  1.43it/s]\u001b[A\n",
      " 43%|█████████████████▌                       | 109/254 [01:16<01:43,  1.41it/s]\u001b[A\n",
      " 43%|█████████████████▊                       | 110/254 [01:16<01:37,  1.47it/s]\u001b[A\n",
      " 44%|█████████████████▉                       | 111/254 [01:17<01:39,  1.44it/s]\u001b[A\n",
      " 44%|██████████████████                       | 112/254 [01:18<01:41,  1.39it/s]\u001b[A\n",
      " 44%|██████████████████▏                      | 113/254 [01:18<01:41,  1.38it/s]\u001b[A\n",
      " 45%|██████████████████▍                      | 114/254 [01:19<01:42,  1.37it/s]\u001b[A\n",
      " 45%|██████████████████▌                      | 115/254 [01:20<01:39,  1.39it/s]\u001b[A\n",
      " 46%|██████████████████▋                      | 116/254 [01:21<01:39,  1.39it/s]\u001b[A\n",
      " 46%|██████████████████▉                      | 117/254 [01:21<01:41,  1.35it/s]\u001b[A\n",
      " 46%|███████████████████                      | 118/254 [01:22<01:37,  1.39it/s]\u001b[A\n",
      " 47%|███████████████████▏                     | 119/254 [01:23<01:30,  1.49it/s]\u001b[A\n",
      " 47%|███████████████████▎                     | 120/254 [01:23<01:25,  1.56it/s]\u001b[A\n",
      " 48%|███████████████████▌                     | 121/254 [01:24<01:22,  1.60it/s]\u001b[A\n",
      " 48%|███████████████████▋                     | 122/254 [01:24<01:27,  1.51it/s]\u001b[A\n",
      " 48%|███████████████████▊                     | 123/254 [01:25<01:22,  1.58it/s]\u001b[A\n",
      " 49%|████████████████████                     | 124/254 [01:26<01:19,  1.64it/s]\u001b[A\n",
      " 49%|████████████████████▏                    | 125/254 [01:26<01:23,  1.55it/s]\u001b[A\n",
      " 50%|████████████████████▎                    | 126/254 [01:27<01:25,  1.50it/s]\u001b[A\n",
      " 50%|████████████████████▌                    | 127/254 [01:28<01:21,  1.57it/s]\u001b[A\n",
      " 50%|████████████████████▋                    | 128/254 [01:28<01:17,  1.62it/s]\u001b[A\n",
      " 51%|████████████████████▊                    | 129/254 [01:29<01:16,  1.63it/s]\u001b[A\n",
      " 51%|████████████████████▉                    | 130/254 [01:30<01:21,  1.53it/s]\u001b[A\n",
      " 52%|█████████████████████▏                   | 131/254 [01:30<01:23,  1.48it/s]\u001b[A\n",
      " 52%|█████████████████████▎                   | 132/254 [01:31<01:25,  1.43it/s]\u001b[A\n",
      " 52%|█████████████████████▍                   | 133/254 [01:32<01:37,  1.24it/s]\u001b[A\n",
      " 53%|█████████████████████▋                   | 134/254 [01:33<01:33,  1.28it/s]\u001b[A\n",
      " 53%|█████████████████████▊                   | 135/254 [01:33<01:26,  1.38it/s]\u001b[A\n",
      " 54%|█████████████████████▉                   | 136/254 [01:34<01:18,  1.50it/s]\u001b[A\n",
      " 54%|██████████████████████                   | 137/254 [01:35<01:17,  1.51it/s]\u001b[A\n",
      " 54%|██████████████████████▎                  | 138/254 [01:35<01:21,  1.43it/s]\u001b[A\n",
      " 55%|██████████████████████▍                  | 139/254 [01:36<01:19,  1.45it/s]\u001b[A\n",
      " 55%|██████████████████████▌                  | 140/254 [01:37<01:13,  1.55it/s]\u001b[A\n",
      " 56%|██████████████████████▊                  | 141/254 [01:37<01:15,  1.50it/s]\u001b[A\n",
      " 56%|██████████████████████▉                  | 142/254 [01:38<01:16,  1.47it/s]\u001b[A\n",
      " 56%|███████████████████████                  | 143/254 [01:39<01:19,  1.39it/s]\u001b[A\n",
      " 57%|███████████████████████▏                 | 144/254 [01:40<01:19,  1.39it/s]\u001b[A\n",
      " 57%|███████████████████████▍                 | 145/254 [01:40<01:17,  1.41it/s]\u001b[A\n",
      " 57%|███████████████████████▌                 | 146/254 [01:41<01:16,  1.42it/s]\u001b[A\n",
      " 58%|███████████████████████▋                 | 147/254 [01:42<01:14,  1.43it/s]\u001b[A\n",
      " 58%|███████████████████████▉                 | 148/254 [01:42<01:08,  1.54it/s]\u001b[A\n",
      " 59%|████████████████████████                 | 149/254 [01:43<01:08,  1.53it/s]\u001b[A\n",
      " 59%|████████████████████████▏                | 150/254 [01:43<01:09,  1.51it/s]\u001b[A\n",
      " 59%|████████████████████████▎                | 151/254 [01:44<01:05,  1.58it/s]\u001b[A\n",
      " 60%|████████████████████████▌                | 152/254 [01:45<01:06,  1.53it/s]\u001b[A\n",
      " 60%|████████████████████████▋                | 153/254 [01:45<01:08,  1.48it/s]\u001b[A\n",
      " 61%|████████████████████████▊                | 154/254 [01:46<01:04,  1.55it/s]\u001b[A\n",
      " 61%|█████████████████████████                | 155/254 [01:47<01:05,  1.50it/s]\u001b[A\n",
      " 61%|█████████████████████████▏               | 156/254 [01:47<01:06,  1.46it/s]\u001b[A\n",
      " 62%|█████████████████████████▎               | 157/254 [01:48<01:03,  1.53it/s]\u001b[A\n",
      " 62%|█████████████████████████▌               | 158/254 [01:49<01:04,  1.49it/s]\u001b[A\n",
      " 63%|█████████████████████████▋               | 159/254 [01:49<01:03,  1.49it/s]\u001b[A\n",
      " 63%|█████████████████████████▊               | 160/254 [01:50<01:00,  1.54it/s]\u001b[A\n",
      " 63%|█████████████████████████▉               | 161/254 [01:51<00:58,  1.58it/s]\u001b[A\n",
      " 64%|██████████████████████████▏              | 162/254 [01:51<00:56,  1.64it/s]\u001b[A\n",
      " 64%|██████████████████████████▎              | 163/254 [01:52<00:59,  1.54it/s]\u001b[A\n",
      " 65%|██████████████████████████▍              | 164/254 [01:53<01:01,  1.46it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 65%|██████████████████████████▋              | 165/254 [01:53<01:00,  1.47it/s]\u001b[A\n",
      " 65%|██████████████████████████▊              | 166/254 [01:54<01:01,  1.43it/s]\u001b[A\n",
      " 66%|██████████████████████████▉              | 167/254 [01:55<00:58,  1.49it/s]\u001b[A\n",
      " 66%|███████████████████████████              | 168/254 [01:56<01:01,  1.41it/s]\u001b[A\n",
      " 67%|███████████████████████████▎             | 169/254 [01:56<00:57,  1.49it/s]\u001b[A\n",
      " 67%|███████████████████████████▍             | 170/254 [01:57<00:57,  1.46it/s]\u001b[A\n",
      " 67%|███████████████████████████▌             | 171/254 [01:57<00:53,  1.55it/s]\u001b[A\n",
      " 68%|███████████████████████████▊             | 172/254 [01:58<00:54,  1.49it/s]\u001b[A\n",
      " 68%|███████████████████████████▉             | 173/254 [01:59<00:55,  1.47it/s]\u001b[A\n",
      " 69%|████████████████████████████             | 174/254 [02:00<00:54,  1.45it/s]\u001b[A\n",
      " 69%|████████████████████████████▏            | 175/254 [02:00<00:52,  1.50it/s]\u001b[A\n",
      " 69%|████████████████████████████▍            | 176/254 [02:01<00:52,  1.47it/s]\u001b[A\n",
      " 70%|████████████████████████████▌            | 177/254 [02:02<00:53,  1.44it/s]\u001b[A\n",
      " 70%|████████████████████████████▋            | 178/254 [02:02<00:53,  1.41it/s]\u001b[A\n",
      " 70%|████████████████████████████▉            | 179/254 [02:03<00:53,  1.41it/s]\u001b[A\n",
      " 71%|█████████████████████████████            | 180/254 [02:04<00:52,  1.42it/s]\u001b[A\n",
      " 71%|█████████████████████████████▏           | 181/254 [02:04<00:51,  1.41it/s]\u001b[A\n",
      " 72%|█████████████████████████████▍           | 182/254 [02:05<00:50,  1.43it/s]\u001b[A\n",
      " 72%|█████████████████████████████▌           | 183/254 [02:06<00:49,  1.43it/s]\u001b[A\n",
      " 72%|█████████████████████████████▋           | 184/254 [02:07<00:51,  1.36it/s]\u001b[A\n",
      " 73%|█████████████████████████████▊           | 185/254 [02:07<00:50,  1.37it/s]\u001b[A\n",
      " 73%|██████████████████████████████           | 186/254 [02:08<00:46,  1.47it/s]\u001b[A\n",
      " 74%|██████████████████████████████▏          | 187/254 [02:09<00:45,  1.46it/s]\u001b[A\n",
      " 74%|██████████████████████████████▎          | 188/254 [02:09<00:42,  1.55it/s]\u001b[A\n",
      " 74%|██████████████████████████████▌          | 189/254 [02:10<00:43,  1.51it/s]\u001b[A\n",
      " 75%|██████████████████████████████▋          | 190/254 [02:11<00:43,  1.46it/s]\u001b[A\n",
      " 75%|██████████████████████████████▊          | 191/254 [02:11<00:43,  1.45it/s]\u001b[A\n",
      " 76%|██████████████████████████████▉          | 192/254 [02:12<00:43,  1.43it/s]\u001b[A\n",
      " 76%|███████████████████████████████▏         | 193/254 [02:13<00:43,  1.42it/s]\u001b[A\n",
      " 76%|███████████████████████████████▎         | 194/254 [02:14<00:49,  1.21it/s]\u001b[A\n",
      " 77%|███████████████████████████████▍         | 195/254 [02:15<00:47,  1.25it/s]\u001b[A\n",
      " 77%|███████████████████████████████▋         | 196/254 [02:15<00:42,  1.37it/s]\u001b[A\n",
      " 78%|███████████████████████████████▊         | 197/254 [02:16<00:42,  1.35it/s]\u001b[A\n",
      " 78%|███████████████████████████████▉         | 198/254 [02:17<00:41,  1.36it/s]\u001b[A\n",
      " 78%|████████████████████████████████         | 199/254 [02:17<00:37,  1.47it/s]\u001b[A\n",
      " 79%|████████████████████████████████▎        | 200/254 [02:18<00:37,  1.45it/s]\u001b[A\n",
      " 79%|████████████████████████████████▍        | 201/254 [02:18<00:34,  1.53it/s]\u001b[A\n",
      " 80%|████████████████████████████████▌        | 202/254 [02:19<00:37,  1.40it/s]\u001b[A\n",
      " 80%|████████████████████████████████▊        | 203/254 [02:20<00:36,  1.40it/s]\u001b[A\n",
      " 80%|████████████████████████████████▉        | 204/254 [02:21<00:33,  1.48it/s]\u001b[A\n",
      " 81%|█████████████████████████████████        | 205/254 [02:21<00:31,  1.56it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▎       | 206/254 [02:22<00:29,  1.62it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▍       | 207/254 [02:23<00:31,  1.51it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▌       | 208/254 [02:23<00:31,  1.48it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▋       | 209/254 [02:24<00:30,  1.45it/s]\u001b[A\n",
      " 83%|█████████████████████████████████▉       | 210/254 [02:25<00:30,  1.44it/s]\u001b[A\n",
      " 83%|██████████████████████████████████       | 211/254 [02:26<00:32,  1.31it/s]\u001b[A\n",
      " 83%|██████████████████████████████████▏      | 212/254 [02:26<00:32,  1.30it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▍      | 213/254 [02:27<00:29,  1.40it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▌      | 214/254 [02:28<00:27,  1.48it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▋      | 215/254 [02:28<00:25,  1.56it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▊      | 216/254 [02:29<00:23,  1.61it/s]\u001b[A\n",
      " 85%|███████████████████████████████████      | 217/254 [02:29<00:24,  1.54it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▏     | 218/254 [02:30<00:24,  1.48it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▎     | 219/254 [02:31<00:22,  1.57it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▌     | 220/254 [02:31<00:22,  1.54it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▋     | 221/254 [02:32<00:20,  1.60it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▊     | 222/254 [02:33<00:20,  1.57it/s]\u001b[A\n",
      " 88%|███████████████████████████████████▉     | 223/254 [02:33<00:19,  1.62it/s]\u001b[A\n",
      " 88%|████████████████████████████████████▏    | 224/254 [02:34<00:20,  1.50it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▎    | 225/254 [02:35<00:20,  1.45it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▍    | 226/254 [02:35<00:18,  1.53it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▋    | 227/254 [02:36<00:17,  1.57it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▊    | 228/254 [02:37<00:17,  1.53it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▉    | 229/254 [02:37<00:16,  1.51it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▏   | 230/254 [02:38<00:16,  1.49it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▎   | 231/254 [02:38<00:14,  1.58it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▍   | 232/254 [02:39<00:15,  1.46it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▌   | 233/254 [02:40<00:14,  1.47it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▊   | 234/254 [02:41<00:13,  1.46it/s]\u001b[A\n",
      " 93%|█████████████████████████████████████▉   | 235/254 [02:41<00:13,  1.44it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████   | 236/254 [02:42<00:11,  1.51it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████▎  | 237/254 [02:43<00:11,  1.49it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▍  | 238/254 [02:43<00:11,  1.45it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▌  | 239/254 [02:44<00:10,  1.42it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▋  | 240/254 [02:45<00:09,  1.41it/s]\u001b[A\n",
      " 95%|██████████████████████████████████████▉  | 241/254 [02:45<00:08,  1.51it/s]\u001b[A\n",
      " 95%|███████████████████████████████████████  | 242/254 [02:46<00:07,  1.61it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▏ | 243/254 [02:46<00:06,  1.62it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▍ | 244/254 [02:47<00:05,  1.67it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▌ | 245/254 [02:48<00:05,  1.68it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▋ | 246/254 [02:48<00:04,  1.71it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▊ | 247/254 [02:49<00:04,  1.58it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████ | 248/254 [02:50<00:03,  1.50it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████▏| 249/254 [02:50<00:03,  1.45it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████▎| 250/254 [02:51<00:02,  1.43it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▌| 251/254 [02:52<00:02,  1.44it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▋| 252/254 [02:53<00:01,  1.43it/s]\u001b[A\n",
      "100%|████████████████████████████████████████▊| 253/254 [02:53<00:00,  1.47it/s]\u001b[A\n",
      "100%|█████████████████████████████████████████| 254/254 [02:54<00:00,  1.46it/s]\u001b[A\n",
      " 57%|█████████████████████████▏                  | 4/7 [16:06<11:52, 237.35s/it]\n",
      "  0%|                                                   | 0/276 [00:00<?, ?it/s]\u001b[A\n",
      "  0%|▏                                          | 1/276 [00:00<03:39,  1.25it/s]\u001b[A\n",
      "  1%|▎                                          | 2/276 [00:01<03:26,  1.32it/s]\u001b[A\n",
      "  1%|▍                                          | 3/276 [00:02<03:22,  1.35it/s]\u001b[A\n",
      "  1%|▌                                          | 4/276 [00:03<04:24,  1.03it/s]\u001b[A\n",
      "  2%|▊                                          | 5/276 [00:04<03:48,  1.19it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  2%|▉                                          | 6/276 [00:04<03:35,  1.25it/s]\u001b[A\n",
      "  3%|█                                          | 7/276 [00:05<03:21,  1.33it/s]\u001b[A\n",
      "  3%|█▏                                         | 8/276 [00:06<03:16,  1.36it/s]\u001b[A\n",
      "  3%|█▍                                         | 9/276 [00:06<03:03,  1.45it/s]\u001b[A\n",
      "  4%|█▌                                        | 10/276 [00:07<03:03,  1.45it/s]\u001b[A\n",
      "  4%|█▋                                        | 11/276 [00:08<03:05,  1.43it/s]\u001b[A\n",
      "  4%|█▊                                        | 12/276 [00:08<02:54,  1.51it/s]\u001b[A\n",
      "  5%|█▉                                        | 13/276 [00:09<02:58,  1.47it/s]\u001b[A\n",
      "  5%|██▏                                       | 14/276 [00:10<02:58,  1.47it/s]\u001b[A\n",
      "  5%|██▎                                       | 15/276 [00:10<02:48,  1.55it/s]\u001b[A\n",
      "  6%|██▍                                       | 16/276 [00:11<02:51,  1.52it/s]\u001b[A\n",
      "  6%|██▌                                       | 17/276 [00:12<02:53,  1.49it/s]\u001b[A\n",
      "  7%|██▋                                       | 18/276 [00:12<03:03,  1.41it/s]\u001b[A\n",
      "  7%|██▉                                       | 19/276 [00:13<03:02,  1.41it/s]\u001b[A\n",
      "  7%|███                                       | 20/276 [00:14<02:53,  1.48it/s]\u001b[A\n",
      "  8%|███▏                                      | 21/276 [00:14<02:43,  1.56it/s]\u001b[A\n",
      "  8%|███▎                                      | 22/276 [00:15<02:38,  1.60it/s]\u001b[A\n",
      "  8%|███▌                                      | 23/276 [00:16<02:46,  1.52it/s]\u001b[A\n",
      "  9%|███▋                                      | 24/276 [00:16<02:56,  1.43it/s]\u001b[A\n",
      "  9%|███▊                                      | 25/276 [00:17<02:58,  1.41it/s]\u001b[A\n",
      "  9%|███▉                                      | 26/276 [00:18<02:57,  1.41it/s]\u001b[A\n",
      " 10%|████                                      | 27/276 [00:19<02:55,  1.42it/s]\u001b[A\n",
      " 10%|████▎                                     | 28/276 [00:19<02:42,  1.53it/s]\u001b[A\n",
      " 11%|████▍                                     | 29/276 [00:20<02:46,  1.49it/s]\u001b[A\n",
      " 11%|████▌                                     | 30/276 [00:21<02:48,  1.46it/s]\u001b[A\n",
      " 11%|████▋                                     | 31/276 [00:21<02:49,  1.45it/s]\u001b[A\n",
      " 12%|████▊                                     | 32/276 [00:22<02:38,  1.54it/s]\u001b[A\n",
      " 12%|█████                                     | 33/276 [00:23<02:58,  1.36it/s]\u001b[A\n",
      " 12%|█████▏                                    | 34/276 [00:23<02:46,  1.45it/s]\u001b[A\n",
      " 13%|█████▎                                    | 35/276 [00:24<02:46,  1.45it/s]\u001b[A\n",
      " 13%|█████▍                                    | 36/276 [00:25<02:35,  1.55it/s]\u001b[A\n",
      " 13%|█████▋                                    | 37/276 [00:25<02:39,  1.50it/s]\u001b[A\n",
      " 14%|█████▊                                    | 38/276 [00:26<02:41,  1.47it/s]\u001b[A\n",
      " 14%|█████▉                                    | 39/276 [00:27<02:44,  1.44it/s]\u001b[A\n",
      " 14%|██████                                    | 40/276 [00:27<02:37,  1.50it/s]\u001b[A\n",
      " 15%|██████▏                                   | 41/276 [00:28<02:31,  1.55it/s]\u001b[A\n",
      " 15%|██████▍                                   | 42/276 [00:29<02:36,  1.49it/s]\u001b[A\n",
      " 16%|██████▌                                   | 43/276 [00:29<02:38,  1.47it/s]\u001b[A\n",
      " 16%|██████▋                                   | 44/276 [00:30<02:41,  1.44it/s]\u001b[A\n",
      " 16%|██████▊                                   | 45/276 [00:31<02:42,  1.42it/s]\u001b[A\n",
      " 17%|███████                                   | 46/276 [00:32<02:40,  1.43it/s]\u001b[A\n",
      " 17%|███████▏                                  | 47/276 [00:32<02:39,  1.43it/s]\u001b[A\n",
      " 17%|███████▎                                  | 48/276 [00:33<02:37,  1.45it/s]\u001b[A\n",
      " 18%|███████▍                                  | 49/276 [00:34<02:36,  1.45it/s]\u001b[A\n",
      " 18%|███████▌                                  | 50/276 [00:34<02:35,  1.45it/s]\u001b[A\n",
      " 18%|███████▊                                  | 51/276 [00:35<02:38,  1.42it/s]\u001b[A\n",
      " 19%|███████▉                                  | 52/276 [00:36<02:39,  1.41it/s]\u001b[A\n",
      " 19%|████████                                  | 53/276 [00:36<02:41,  1.38it/s]\u001b[A\n",
      " 20%|████████▏                                 | 54/276 [00:37<02:44,  1.35it/s]\u001b[A\n",
      " 20%|████████▎                                 | 55/276 [00:38<02:40,  1.38it/s]\u001b[A\n",
      " 20%|████████▌                                 | 56/276 [00:39<02:36,  1.41it/s]\u001b[A\n",
      " 21%|████████▋                                 | 57/276 [00:39<02:36,  1.40it/s]\u001b[A\n",
      " 21%|████████▊                                 | 58/276 [00:40<02:35,  1.40it/s]\u001b[A\n",
      " 21%|████████▉                                 | 59/276 [00:41<02:37,  1.38it/s]\u001b[A\n",
      " 22%|█████████▏                                | 60/276 [00:42<02:35,  1.39it/s]\u001b[A\n",
      " 22%|█████████▎                                | 61/276 [00:42<02:25,  1.47it/s]\u001b[A\n",
      " 22%|█████████▍                                | 62/276 [00:43<02:26,  1.46it/s]\u001b[A\n",
      " 23%|█████████▌                                | 63/276 [00:44<02:28,  1.44it/s]\u001b[A\n",
      " 23%|█████████▋                                | 64/276 [00:44<02:27,  1.43it/s]\u001b[A\n",
      " 24%|█████████▉                                | 65/276 [00:45<02:29,  1.41it/s]\u001b[A\n",
      " 24%|██████████                                | 66/276 [00:46<02:28,  1.42it/s]\u001b[A\n",
      " 24%|██████████▏                               | 67/276 [00:46<02:25,  1.44it/s]\u001b[A\n",
      " 25%|██████████▎                               | 68/276 [00:47<02:25,  1.43it/s]\u001b[A\n",
      " 25%|██████████▌                               | 69/276 [00:48<02:25,  1.43it/s]\u001b[A\n",
      " 25%|██████████▋                               | 70/276 [00:49<02:55,  1.17it/s]\u001b[A\n",
      " 26%|██████████▊                               | 71/276 [00:50<02:47,  1.22it/s]\u001b[A\n",
      " 26%|██████████▉                               | 72/276 [00:50<02:29,  1.36it/s]\u001b[A\n",
      " 26%|███████████                               | 73/276 [00:51<02:30,  1.35it/s]\u001b[A\n",
      " 27%|███████████▎                              | 74/276 [00:52<02:28,  1.36it/s]\u001b[A\n",
      " 27%|███████████▍                              | 75/276 [00:53<02:31,  1.33it/s]\u001b[A\n",
      " 28%|███████████▌                              | 76/276 [00:53<02:33,  1.30it/s]\u001b[A\n",
      " 28%|███████████▋                              | 77/276 [00:54<02:38,  1.26it/s]\u001b[A\n",
      " 28%|███████████▊                              | 78/276 [00:55<02:25,  1.36it/s]\u001b[A\n",
      " 29%|████████████                              | 79/276 [00:55<02:23,  1.37it/s]\u001b[A\n",
      " 29%|████████████▏                             | 80/276 [00:56<02:23,  1.36it/s]\u001b[A\n",
      " 29%|████████████▎                             | 81/276 [00:57<02:13,  1.46it/s]\u001b[A\n",
      " 30%|████████████▍                             | 82/276 [00:57<02:07,  1.53it/s]\u001b[A\n",
      " 30%|████████████▋                             | 83/276 [00:58<02:08,  1.50it/s]\u001b[A\n",
      " 30%|████████████▊                             | 84/276 [00:59<02:09,  1.49it/s]\u001b[A\n",
      " 31%|████████████▉                             | 85/276 [00:59<02:11,  1.45it/s]\u001b[A\n",
      " 31%|█████████████                             | 86/276 [01:01<02:30,  1.26it/s]\u001b[A\n",
      " 32%|█████████████▏                            | 87/276 [01:01<02:29,  1.26it/s]\u001b[A\n",
      " 32%|█████████████▍                            | 88/276 [01:02<02:25,  1.30it/s]\u001b[A\n",
      " 32%|█████████████▌                            | 89/276 [01:03<02:21,  1.32it/s]\u001b[A\n",
      " 33%|█████████████▋                            | 90/276 [01:04<02:44,  1.13it/s]\u001b[A\n",
      " 33%|█████████████▊                            | 91/276 [01:05<02:37,  1.17it/s]\u001b[A\n",
      " 33%|██████████████                            | 92/276 [01:06<02:34,  1.19it/s]\u001b[A\n",
      " 34%|██████████████▏                           | 93/276 [01:06<02:26,  1.25it/s]\u001b[A\n",
      " 34%|██████████████▎                           | 94/276 [01:07<02:18,  1.31it/s]\u001b[A\n",
      " 34%|██████████████▍                           | 95/276 [01:08<02:14,  1.34it/s]\u001b[A\n",
      " 35%|██████████████▌                           | 96/276 [01:08<02:10,  1.37it/s]\u001b[A\n",
      " 35%|██████████████▊                           | 97/276 [01:09<02:03,  1.45it/s]\u001b[A\n",
      " 36%|██████████████▉                           | 98/276 [01:10<02:05,  1.42it/s]\u001b[A\n",
      " 36%|███████████████                           | 99/276 [01:10<02:04,  1.42it/s]\u001b[A\n",
      " 36%|██████████████▊                          | 100/276 [01:11<01:57,  1.50it/s]\u001b[A\n",
      " 37%|███████████████                          | 101/276 [01:12<01:56,  1.50it/s]\u001b[A\n",
      " 37%|███████████████▏                         | 102/276 [01:12<01:59,  1.45it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 37%|███████████████▎                         | 103/276 [01:13<01:57,  1.47it/s]\u001b[A\n",
      " 38%|███████████████▍                         | 104/276 [01:14<01:56,  1.47it/s]\u001b[A\n",
      " 38%|███████████████▌                         | 105/276 [01:14<01:59,  1.43it/s]\u001b[A\n",
      " 38%|███████████████▋                         | 106/276 [01:15<02:00,  1.42it/s]\u001b[A\n",
      " 39%|███████████████▉                         | 107/276 [01:16<02:00,  1.40it/s]\u001b[A\n",
      " 39%|████████████████                         | 108/276 [01:17<01:58,  1.42it/s]\u001b[A\n",
      " 39%|████████████████▏                        | 109/276 [01:17<01:50,  1.51it/s]\u001b[A\n",
      " 40%|████████████████▎                        | 110/276 [01:18<01:53,  1.46it/s]\u001b[A\n",
      " 40%|████████████████▍                        | 111/276 [01:19<01:53,  1.45it/s]\u001b[A\n",
      " 41%|████████████████▋                        | 112/276 [01:19<01:55,  1.42it/s]\u001b[A\n",
      " 41%|████████████████▊                        | 113/276 [01:20<01:55,  1.41it/s]\u001b[A\n",
      " 41%|████████████████▉                        | 114/276 [01:21<01:53,  1.43it/s]\u001b[A\n",
      " 42%|█████████████████                        | 115/276 [01:21<01:54,  1.41it/s]\u001b[A\n",
      " 42%|█████████████████▏                       | 116/276 [01:23<02:11,  1.21it/s]\u001b[A\n",
      " 42%|█████████████████▍                       | 117/276 [01:23<02:06,  1.26it/s]\u001b[A\n",
      " 43%|█████████████████▌                       | 118/276 [01:24<02:06,  1.25it/s]\u001b[A\n",
      " 43%|█████████████████▋                       | 119/276 [01:25<02:03,  1.27it/s]\u001b[A\n",
      " 43%|█████████████████▊                       | 120/276 [01:26<01:59,  1.31it/s]\u001b[A\n",
      " 44%|█████████████████▉                       | 121/276 [01:26<02:00,  1.29it/s]\u001b[A\n",
      " 44%|██████████████████                       | 122/276 [01:27<01:56,  1.32it/s]\u001b[A\n",
      " 45%|██████████████████▎                      | 123/276 [01:28<01:54,  1.34it/s]\u001b[A\n",
      " 45%|██████████████████▍                      | 124/276 [01:28<01:51,  1.37it/s]\u001b[A\n",
      " 45%|██████████████████▌                      | 125/276 [01:29<01:44,  1.45it/s]\u001b[A\n",
      " 46%|██████████████████▋                      | 126/276 [01:30<01:43,  1.45it/s]\u001b[A\n",
      " 46%|██████████████████▊                      | 127/276 [01:30<01:43,  1.44it/s]\u001b[A\n",
      " 46%|███████████████████                      | 128/276 [01:31<01:44,  1.41it/s]\u001b[A\n",
      " 47%|███████████████████▏                     | 129/276 [01:32<01:42,  1.43it/s]\u001b[A\n",
      " 47%|███████████████████▎                     | 130/276 [01:33<01:46,  1.37it/s]\u001b[A\n",
      " 47%|███████████████████▍                     | 131/276 [01:33<01:46,  1.37it/s]\u001b[A\n",
      " 48%|███████████████████▌                     | 132/276 [01:34<01:48,  1.32it/s]\u001b[A\n",
      " 48%|███████████████████▊                     | 133/276 [01:35<01:45,  1.36it/s]\u001b[A\n",
      " 49%|███████████████████▉                     | 134/276 [01:36<01:49,  1.30it/s]\u001b[A\n",
      " 49%|████████████████████                     | 135/276 [01:36<01:40,  1.41it/s]\u001b[A\n",
      " 49%|████████████████████▏                    | 136/276 [01:37<01:39,  1.41it/s]\u001b[A\n",
      " 50%|████████████████████▎                    | 137/276 [01:38<01:32,  1.51it/s]\u001b[A\n",
      " 50%|████████████████████▌                    | 138/276 [01:38<01:34,  1.46it/s]\u001b[A\n",
      " 50%|████████████████████▋                    | 139/276 [01:39<01:35,  1.44it/s]\u001b[A\n",
      " 51%|████████████████████▊                    | 140/276 [01:40<01:35,  1.42it/s]\u001b[A\n",
      " 51%|████████████████████▉                    | 141/276 [01:41<01:37,  1.38it/s]\u001b[A\n",
      " 51%|█████████████████████                    | 142/276 [01:41<01:36,  1.39it/s]\u001b[A\n",
      " 52%|█████████████████████▏                   | 143/276 [01:42<01:35,  1.39it/s]\u001b[A\n",
      " 52%|█████████████████████▍                   | 144/276 [01:43<01:34,  1.39it/s]\u001b[A\n",
      " 53%|█████████████████████▌                   | 145/276 [01:43<01:35,  1.37it/s]\u001b[A\n",
      " 53%|█████████████████████▋                   | 146/276 [01:44<01:29,  1.45it/s]\u001b[A\n",
      " 53%|█████████████████████▊                   | 147/276 [01:45<01:24,  1.53it/s]\u001b[A\n",
      " 54%|█████████████████████▉                   | 148/276 [01:45<01:21,  1.57it/s]\u001b[A\n",
      " 54%|██████████████████████▏                  | 149/276 [01:46<01:26,  1.46it/s]\u001b[A\n",
      " 54%|██████████████████████▎                  | 150/276 [01:47<01:27,  1.43it/s]\u001b[A\n",
      " 55%|██████████████████████▍                  | 151/276 [01:48<01:31,  1.37it/s]\u001b[A\n",
      " 55%|██████████████████████▌                  | 152/276 [01:48<01:28,  1.40it/s]\u001b[A\n",
      " 55%|██████████████████████▋                  | 153/276 [01:49<01:29,  1.38it/s]\u001b[A\n",
      " 56%|██████████████████████▉                  | 154/276 [01:50<01:28,  1.37it/s]\u001b[A\n",
      " 56%|███████████████████████                  | 155/276 [01:50<01:27,  1.39it/s]\u001b[A\n",
      " 57%|███████████████████████▏                 | 156/276 [01:51<01:26,  1.39it/s]\u001b[A\n",
      " 57%|███████████████████████▎                 | 157/276 [01:52<01:23,  1.42it/s]\u001b[A\n",
      " 57%|███████████████████████▍                 | 158/276 [01:52<01:22,  1.43it/s]\u001b[A\n",
      " 58%|███████████████████████▌                 | 159/276 [01:53<01:21,  1.43it/s]\u001b[A\n",
      " 58%|███████████████████████▊                 | 160/276 [01:54<01:21,  1.42it/s]\u001b[A\n",
      " 58%|███████████████████████▉                 | 161/276 [01:55<01:22,  1.39it/s]\u001b[A\n",
      " 59%|████████████████████████                 | 162/276 [01:55<01:23,  1.37it/s]\u001b[A\n",
      " 59%|████████████████████████▏                | 163/276 [01:56<01:21,  1.39it/s]\u001b[A\n",
      " 59%|████████████████████████▎                | 164/276 [01:57<01:16,  1.46it/s]\u001b[A\n",
      " 60%|████████████████████████▌                | 165/276 [01:57<01:11,  1.55it/s]\u001b[A\n",
      " 60%|████████████████████████▋                | 166/276 [01:58<01:14,  1.48it/s]\u001b[A\n",
      " 61%|████████████████████████▊                | 167/276 [01:59<01:09,  1.58it/s]\u001b[A\n",
      " 61%|████████████████████████▉                | 168/276 [01:59<01:12,  1.48it/s]\u001b[A\n",
      " 61%|█████████████████████████                | 169/276 [02:00<01:08,  1.56it/s]\u001b[A\n",
      " 62%|█████████████████████████▎               | 170/276 [02:01<01:10,  1.50it/s]\u001b[A\n",
      " 62%|█████████████████████████▍               | 171/276 [02:01<01:12,  1.44it/s]\u001b[A\n",
      " 62%|█████████████████████████▌               | 172/276 [02:02<01:07,  1.54it/s]\u001b[A\n",
      " 63%|█████████████████████████▋               | 173/276 [02:03<01:22,  1.25it/s]\u001b[A\n",
      " 63%|█████████████████████████▊               | 174/276 [02:04<01:15,  1.35it/s]\u001b[A\n",
      " 63%|█████████████████████████▉               | 175/276 [02:04<01:10,  1.43it/s]\u001b[A\n",
      " 64%|██████████████████████████▏              | 176/276 [02:05<01:11,  1.41it/s]\u001b[A\n",
      " 64%|██████████████████████████▎              | 177/276 [02:06<01:10,  1.41it/s]\u001b[A\n",
      " 64%|██████████████████████████▍              | 178/276 [02:06<01:11,  1.38it/s]\u001b[A\n",
      " 65%|██████████████████████████▌              | 179/276 [02:07<01:10,  1.38it/s]\u001b[A\n",
      " 65%|██████████████████████████▋              | 180/276 [02:08<01:08,  1.40it/s]\u001b[A\n",
      " 66%|██████████████████████████▉              | 181/276 [02:09<01:08,  1.39it/s]\u001b[A\n",
      " 66%|███████████████████████████              | 182/276 [02:09<01:07,  1.39it/s]\u001b[A\n",
      " 66%|███████████████████████████▏             | 183/276 [02:10<01:10,  1.32it/s]\u001b[A\n",
      " 67%|███████████████████████████▎             | 184/276 [02:11<01:07,  1.36it/s]\u001b[A\n",
      " 67%|███████████████████████████▍             | 185/276 [02:12<01:05,  1.38it/s]\u001b[A\n",
      " 67%|███████████████████████████▋             | 186/276 [02:12<01:04,  1.38it/s]\u001b[A\n",
      " 68%|███████████████████████████▊             | 187/276 [02:13<01:02,  1.42it/s]\u001b[A\n",
      " 68%|███████████████████████████▉             | 188/276 [02:14<01:02,  1.41it/s]\u001b[A\n",
      " 68%|████████████████████████████             | 189/276 [02:14<01:03,  1.38it/s]\u001b[A\n",
      " 69%|████████████████████████████▏            | 190/276 [02:15<01:03,  1.36it/s]\u001b[A\n",
      " 69%|████████████████████████████▎            | 191/276 [02:16<01:01,  1.37it/s]\u001b[A\n",
      " 70%|████████████████████████████▌            | 192/276 [02:17<00:59,  1.41it/s]\u001b[A\n",
      " 70%|████████████████████████████▋            | 193/276 [02:17<01:00,  1.37it/s]\u001b[A\n",
      " 70%|████████████████████████████▊            | 194/276 [02:18<00:59,  1.37it/s]\u001b[A\n",
      " 71%|████████████████████████████▉            | 195/276 [02:19<00:58,  1.38it/s]\u001b[A\n",
      " 71%|█████████████████████████████            | 196/276 [02:20<00:58,  1.36it/s]\u001b[A\n",
      " 71%|█████████████████████████████▎           | 197/276 [02:20<00:57,  1.37it/s]\u001b[A\n",
      " 72%|█████████████████████████████▍           | 198/276 [02:21<00:53,  1.46it/s]\u001b[A\n",
      " 72%|█████████████████████████████▌           | 199/276 [02:22<00:55,  1.39it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 72%|█████████████████████████████▋           | 200/276 [02:22<00:57,  1.33it/s]\u001b[A\n",
      " 73%|█████████████████████████████▊           | 201/276 [02:23<00:54,  1.37it/s]\u001b[A\n",
      " 73%|██████████████████████████████           | 202/276 [02:24<00:51,  1.45it/s]\u001b[A\n",
      " 74%|██████████████████████████████▏          | 203/276 [02:24<00:47,  1.53it/s]\u001b[A\n",
      " 74%|██████████████████████████████▎          | 204/276 [02:25<00:49,  1.46it/s]\u001b[A\n",
      " 74%|██████████████████████████████▍          | 205/276 [02:26<00:49,  1.43it/s]\u001b[A\n",
      " 75%|██████████████████████████████▌          | 206/276 [02:26<00:49,  1.42it/s]\u001b[A\n",
      " 75%|██████████████████████████████▊          | 207/276 [02:27<00:45,  1.52it/s]\u001b[A\n",
      " 75%|██████████████████████████████▉          | 208/276 [02:28<00:45,  1.49it/s]\u001b[A\n",
      " 76%|███████████████████████████████          | 209/276 [02:28<00:46,  1.45it/s]\u001b[A\n",
      " 76%|███████████████████████████████▏         | 210/276 [02:29<00:48,  1.37it/s]\u001b[A\n",
      " 76%|███████████████████████████████▎         | 211/276 [02:30<00:44,  1.46it/s]\u001b[A\n",
      " 77%|███████████████████████████████▍         | 212/276 [02:31<00:43,  1.47it/s]\u001b[A\n",
      " 77%|███████████████████████████████▋         | 213/276 [02:31<00:43,  1.45it/s]\u001b[A\n",
      " 78%|███████████████████████████████▊         | 214/276 [02:32<00:42,  1.45it/s]\u001b[A\n",
      " 78%|███████████████████████████████▉         | 215/276 [02:33<00:41,  1.46it/s]\u001b[A\n",
      " 78%|████████████████████████████████         | 216/276 [02:33<00:39,  1.53it/s]\u001b[A\n",
      " 79%|████████████████████████████████▏        | 217/276 [02:34<00:36,  1.60it/s]\u001b[A\n",
      " 79%|████████████████████████████████▍        | 218/276 [02:34<00:37,  1.55it/s]\u001b[A\n",
      " 79%|████████████████████████████████▌        | 219/276 [02:35<00:37,  1.52it/s]\u001b[A\n",
      " 80%|████████████████████████████████▋        | 220/276 [02:36<00:34,  1.61it/s]\u001b[A\n",
      " 80%|████████████████████████████████▊        | 221/276 [02:36<00:35,  1.53it/s]\u001b[A\n",
      " 80%|████████████████████████████████▉        | 222/276 [02:37<00:37,  1.45it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▏       | 223/276 [02:38<00:37,  1.41it/s]\u001b[A\n",
      " 81%|█████████████████████████████████▎       | 224/276 [02:39<00:35,  1.48it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▍       | 225/276 [02:39<00:34,  1.47it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▌       | 226/276 [02:40<00:31,  1.56it/s]\u001b[A\n",
      " 82%|█████████████████████████████████▋       | 227/276 [02:40<00:32,  1.50it/s]\u001b[A\n",
      " 83%|█████████████████████████████████▊       | 228/276 [02:41<00:30,  1.59it/s]\u001b[A\n",
      " 83%|██████████████████████████████████       | 229/276 [02:42<00:30,  1.54it/s]\u001b[A\n",
      " 83%|██████████████████████████████████▏      | 230/276 [02:42<00:28,  1.60it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▎      | 231/276 [02:43<00:29,  1.55it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▍      | 232/276 [02:44<00:30,  1.44it/s]\u001b[A\n",
      " 84%|██████████████████████████████████▌      | 233/276 [02:45<00:30,  1.43it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▊      | 234/276 [02:45<00:28,  1.49it/s]\u001b[A\n",
      " 85%|██████████████████████████████████▉      | 235/276 [02:46<00:28,  1.44it/s]\u001b[A\n",
      " 86%|███████████████████████████████████      | 236/276 [02:47<00:28,  1.43it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▏     | 237/276 [02:47<00:25,  1.51it/s]\u001b[A\n",
      " 86%|███████████████████████████████████▎     | 238/276 [02:48<00:26,  1.46it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▌     | 239/276 [02:49<00:25,  1.44it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▋     | 240/276 [02:49<00:23,  1.51it/s]\u001b[A\n",
      " 87%|███████████████████████████████████▊     | 241/276 [02:50<00:23,  1.47it/s]\u001b[A\n",
      " 88%|███████████████████████████████████▉     | 242/276 [02:51<00:26,  1.27it/s]\u001b[A\n",
      " 88%|████████████████████████████████████     | 243/276 [02:52<00:25,  1.32it/s]\u001b[A\n",
      " 88%|████████████████████████████████████▏    | 244/276 [02:52<00:23,  1.36it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▍    | 245/276 [02:53<00:21,  1.44it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▌    | 246/276 [02:54<00:20,  1.43it/s]\u001b[A\n",
      " 89%|████████████████████████████████████▋    | 247/276 [02:54<00:20,  1.45it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▊    | 248/276 [02:55<00:19,  1.43it/s]\u001b[A\n",
      " 90%|████████████████████████████████████▉    | 249/276 [02:56<00:19,  1.38it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▏   | 250/276 [02:57<00:18,  1.40it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▎   | 251/276 [02:57<00:17,  1.41it/s]\u001b[A\n",
      " 91%|█████████████████████████████████████▍   | 252/276 [02:58<00:16,  1.43it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▌   | 253/276 [02:59<00:16,  1.44it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▋   | 254/276 [02:59<00:15,  1.43it/s]\u001b[A\n",
      " 92%|█████████████████████████████████████▉   | 255/276 [03:00<00:15,  1.34it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████   | 256/276 [03:01<00:15,  1.32it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████▏  | 257/276 [03:01<00:13,  1.42it/s]\u001b[A\n",
      " 93%|██████████████████████████████████████▎  | 258/276 [03:02<00:12,  1.49it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▍  | 259/276 [03:03<00:13,  1.26it/s]\u001b[A\n",
      " 94%|██████████████████████████████████████▌  | 260/276 [03:04<00:12,  1.32it/s]\u001b[A\n",
      " 95%|██████████████████████████████████████▊  | 261/276 [03:04<00:10,  1.41it/s]\u001b[A\n",
      " 95%|██████████████████████████████████████▉  | 262/276 [03:05<00:09,  1.45it/s]\u001b[A\n",
      " 95%|███████████████████████████████████████  | 263/276 [03:06<00:10,  1.25it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▏ | 264/276 [03:07<00:10,  1.19it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▎ | 265/276 [03:08<00:08,  1.30it/s]\u001b[A\n",
      " 96%|███████████████████████████████████████▌ | 266/276 [03:08<00:07,  1.35it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▋ | 267/276 [03:09<00:06,  1.46it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▊ | 268/276 [03:09<00:05,  1.52it/s]\u001b[A\n",
      " 97%|███████████████████████████████████████▉ | 269/276 [03:11<00:06,  1.10it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████ | 270/276 [03:12<00:04,  1.25it/s]\u001b[A\n",
      " 98%|████████████████████████████████████████▎| 271/276 [03:12<00:03,  1.26it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▍| 272/276 [03:13<00:02,  1.39it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▌| 273/276 [03:14<00:02,  1.36it/s]\u001b[A\n",
      " 99%|████████████████████████████████████████▋| 274/276 [03:14<00:01,  1.32it/s]\u001b[A\n",
      "100%|████████████████████████████████████████▊| 275/276 [03:15<00:00,  1.30it/s]\u001b[A\n",
      "100%|█████████████████████████████████████████| 276/276 [03:16<00:00,  1.40it/s]\u001b[A\n",
      " 71%|███████████████████████████████▍            | 5/7 [19:23<07:25, 222.85s/it]\n",
      "  0%|                                                    | 0/34 [00:00<?, ?it/s]\u001b[A\n",
      "  3%|█▎                                          | 1/34 [00:00<00:28,  1.18it/s]\u001b[A\n",
      "  6%|██▌                                         | 2/34 [00:01<00:26,  1.21it/s]\u001b[A\n",
      "  9%|███▉                                        | 3/34 [00:02<00:22,  1.36it/s]\u001b[A\n",
      " 12%|█████▏                                      | 4/34 [00:02<00:19,  1.51it/s]\u001b[A\n",
      " 15%|██████▍                                     | 5/34 [00:03<00:17,  1.64it/s]\u001b[A\n",
      " 18%|███████▊                                    | 6/34 [00:04<00:19,  1.44it/s]\u001b[A\n",
      " 21%|█████████                                   | 7/34 [00:05<00:19,  1.35it/s]\u001b[A\n",
      " 24%|██████████▎                                 | 8/34 [00:05<00:19,  1.33it/s]\u001b[A\n",
      " 26%|███████████▋                                | 9/34 [00:06<00:19,  1.25it/s]\u001b[A\n",
      " 29%|████████████▋                              | 10/34 [00:07<00:18,  1.31it/s]\u001b[A\n",
      " 32%|█████████████▉                             | 11/34 [00:08<00:17,  1.35it/s]\u001b[A\n",
      " 35%|███████████████▏                           | 12/34 [00:08<00:16,  1.35it/s]\u001b[A\n",
      " 38%|████████████████▍                          | 13/34 [00:09<00:16,  1.26it/s]\u001b[A\n",
      " 41%|█████████████████▋                         | 14/34 [00:10<00:15,  1.30it/s]\u001b[A\n",
      " 44%|██████████████████▉                        | 15/34 [00:11<00:14,  1.28it/s]\u001b[A\n",
      " 47%|████████████████████▏                      | 16/34 [00:11<00:13,  1.38it/s]\u001b[A\n",
      " 50%|█████████████████████▌                     | 17/34 [00:12<00:12,  1.41it/s]\u001b[A\n",
      " 53%|██████████████████████▊                    | 18/34 [00:13<00:11,  1.39it/s]\u001b[A\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 56%|████████████████████████                   | 19/34 [00:13<00:10,  1.40it/s]\u001b[A\n",
      " 59%|█████████████████████████▎                 | 20/34 [00:14<00:10,  1.40it/s]\u001b[A\n",
      " 62%|██████████████████████████▌                | 21/34 [00:15<00:09,  1.36it/s]\u001b[A\n",
      " 65%|███████████████████████████▊               | 22/34 [00:16<00:08,  1.35it/s]\u001b[A\n",
      " 68%|█████████████████████████████              | 23/34 [00:16<00:07,  1.48it/s]\u001b[A\n",
      " 71%|██████████████████████████████▎            | 24/34 [00:17<00:06,  1.55it/s]\u001b[A\n",
      " 74%|███████████████████████████████▌           | 25/34 [00:18<00:06,  1.50it/s]\u001b[A\n",
      " 76%|████████████████████████████████▉          | 26/34 [00:18<00:05,  1.45it/s]\u001b[A\n",
      " 79%|██████████████████████████████████▏        | 27/34 [00:19<00:05,  1.39it/s]\u001b[A\n",
      " 82%|███████████████████████████████████▍       | 28/34 [00:20<00:04,  1.39it/s]\u001b[A\n",
      " 85%|████████████████████████████████████▋      | 29/34 [00:20<00:03,  1.47it/s]\u001b[A\n",
      " 88%|█████████████████████████████████████▉     | 30/34 [00:21<00:02,  1.55it/s]\u001b[A\n",
      " 91%|███████████████████████████████████████▏   | 31/34 [00:22<00:02,  1.45it/s]\u001b[A\n",
      " 94%|████████████████████████████████████████▍  | 32/34 [00:22<00:01,  1.53it/s]\u001b[A\n",
      " 97%|█████████████████████████████████████████▋ | 33/34 [00:23<00:00,  1.45it/s]\u001b[A\n",
      "100%|███████████████████████████████████████████| 34/34 [00:24<00:00,  1.41it/s]\u001b[A\n",
      " 86%|█████████████████████████████████████▋      | 6/7 [19:48<02:35, 155.51s/it]\n",
      "  0%|                                                     | 0/9 [00:00<?, ?it/s]\u001b[A\n",
      " 11%|█████                                        | 1/9 [00:00<00:04,  1.93it/s]\u001b[A\n",
      " 22%|██████████                                   | 2/9 [00:01<00:03,  1.83it/s]\u001b[A\n",
      " 33%|███████████████                              | 3/9 [00:01<00:03,  1.88it/s]\u001b[A\n",
      " 44%|████████████████████                         | 4/9 [00:02<00:02,  1.88it/s]\u001b[A\n",
      " 56%|█████████████████████████                    | 5/9 [00:02<00:02,  1.75it/s]\u001b[A\n",
      " 67%|██████████████████████████████               | 6/9 [00:03<00:01,  1.71it/s]\u001b[A\n",
      " 78%|███████████████████████████████████          | 7/9 [00:03<00:01,  1.79it/s]\u001b[A\n",
      " 89%|████████████████████████████████████████     | 8/9 [00:04<00:00,  1.71it/s]\u001b[A\n",
      "100%|█████████████████████████████████████████████| 9/9 [00:05<00:00,  1.78it/s]\u001b[A\n",
      "100%|████████████████████████████████████████████| 7/7 [19:54<00:00, 170.59s/it]\n"
     ]
    }
   ],
   "source": [
    "result = {}\n",
    "\n",
    "for class_ in tqdm(parse_links):\n",
    "    \n",
    "    html = requests.get(parse_links[class_]).text\n",
    "    soup = BeautifulSoup(html, 'html.parser')\n",
    "    div_list = soup.find('div', class_='list')\n",
    "    links = [i.get('href') for i in div_list.find_all('a')]\n",
    "    \n",
    "    files = []\n",
    "    for link in tqdm(links):\n",
    "        html_ = requests.get(link).text\n",
    "        soup_ = BeautifulSoup(html_, 'html.parser')\n",
    "        try:\n",
    "            file = [i for i in soup_.find('p', class_='hl_files').find_all('a') if 'образец' in i.text][0]\n",
    "        except IndexError:\n",
    "            continue\n",
    "        files.append(file)\n",
    "\n",
    "    files = [file.get('href') for file in files]\n",
    "    \n",
    "    result[class_] = files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "id": "a15174da",
   "metadata": {},
   "outputs": [],
   "source": [
    "additional_links = []\n",
    "\n",
    "for class_, links in result.items():\n",
    "    additional_links_df = pd.DataFrame({\n",
    "        'class': rtoe[class_],\n",
    "        'link': links,\n",
    "    })\n",
    "    \n",
    "    additional_links.append(additional_links_df)\n",
    "\n",
    "additional_links = pd.concat(additional_links)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "id": "dbad8904",
   "metadata": {},
   "outputs": [],
   "source": [
    "additional_links.to_csv('../data/additional_links.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "b838ad9c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>link</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>proxy</td>\n",
       "      <td>https://assistentus.ru/wp-content/uploads/file...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>proxy</td>\n",
       "      <td>https://assistentus.ru/wp-content/uploads/file...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>proxy</td>\n",
       "      <td>https://assistentus.ru/wp-content/uploads/file...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>proxy</td>\n",
       "      <td>https://assistentus.ru/wp-content/uploads/file...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>proxy</td>\n",
       "      <td>https://assistentus.ru/wp-content/uploads/file...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1552</th>\n",
       "      <td>determination</td>\n",
       "      <td>https://assistentus.ru/wp-content/uploads/file...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1553</th>\n",
       "      <td>determination</td>\n",
       "      <td>https://assistentus.ru/wp-content/uploads/file...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1554</th>\n",
       "      <td>determination</td>\n",
       "      <td>https://assistentus.ru/wp-content/uploads/file...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1555</th>\n",
       "      <td>determination</td>\n",
       "      <td>https://assistentus.ru/wp-content/uploads/file...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1556</th>\n",
       "      <td>determination</td>\n",
       "      <td>https://assistentus.ru/wp-content/uploads/file...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1557 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              class                                               link\n",
       "0             proxy  https://assistentus.ru/wp-content/uploads/file...\n",
       "1             proxy  https://assistentus.ru/wp-content/uploads/file...\n",
       "2             proxy  https://assistentus.ru/wp-content/uploads/file...\n",
       "3             proxy  https://assistentus.ru/wp-content/uploads/file...\n",
       "4             proxy  https://assistentus.ru/wp-content/uploads/file...\n",
       "...             ...                                                ...\n",
       "1552  determination  https://assistentus.ru/wp-content/uploads/file...\n",
       "1553  determination  https://assistentus.ru/wp-content/uploads/file...\n",
       "1554  determination  https://assistentus.ru/wp-content/uploads/file...\n",
       "1555  determination  https://assistentus.ru/wp-content/uploads/file...\n",
       "1556  determination  https://assistentus.ru/wp-content/uploads/file...\n",
       "\n",
       "[1557 rows x 2 columns]"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "additional_links = pd.read_csv('../data/additional_links.csv')\n",
    "additional_links"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "cd6a69ce",
   "metadata": {},
   "outputs": [],
   "source": [
    "additional_links.to_csv('tmp.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "id": "97b04552",
   "metadata": {},
   "outputs": [],
   "source": [
    "docx_files = glob.glob('../data/tmp/*.docx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "id": "0c3d490f",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 10%|███▊                                   | 144/1457 [00:00<00:03, 330.94it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "File is not a zip file\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████████████████████████████████| 1457/1457 [00:05<00:00, 284.63it/s]\n"
     ]
    }
   ],
   "source": [
    "res = {}\n",
    "for file in tqdm(docx_files):\n",
    "    try:\n",
    "        res[file] = docx2txt.process(file)\n",
    "    except Exception as e:\n",
    "        print(e)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "id": "81b77344",
   "metadata": {},
   "outputs": [],
   "source": [
    "res = pd.DataFrame(res.items(), columns=['path', 'text'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "id": "e0123708",
   "metadata": {},
   "outputs": [],
   "source": [
    "res['path'] = res['path'].str.split('/', expand=True)[3].str.split('.', expand=True)[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "id": "fa8ffc4a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>path</th>\n",
       "      <th>text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>obrazec-iskovoe-zayavlenie-v-arbitrajniy-sud</td>\n",
       "      <td>25 ноября 2024 года\\n\\n\\nВ Арбитражный суд Тюм...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>obrazec-akt-peredachi-toplivnoy-karti-voditelu</td>\n",
       "      <td>ООО «Логистические услуги всем»\\n\\nАкт приема-...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>obrazec-zayavlenie-o-perevode-v-drugoi-klass</td>\n",
       "      <td>Директору МБОУ СОШ № 19 г. Кургана Нестерову С...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>obrazec-dogovora-podrjada-na-stroitel'stvo-saraja</td>\n",
       "      <td>Преамбула\\n\\nДоговор подряда на строительство ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>obrazec-doverennost-na-registracziyu-ts-v-gibd...</td>\n",
       "      <td>Доверенность\\n\\n\\n\\nг. Ижевск\\n\\nДата выдачи: ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1451</th>\n",
       "      <td>obrazec-dogovora-arendy-stroitel'nogo-pylesosa</td>\n",
       "      <td>Договор аренды строительного пылесоса\\n\\nг. Вл...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1452</th>\n",
       "      <td>obrazec-dogovora-podrjada-na-remont-kofemashiny</td>\n",
       "      <td>Преамбула\\n\\nДоговор подряда на ремонт кофемаш...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1453</th>\n",
       "      <td>obrazec-dogovora-na-tehnicheskoe-obsluzhivanie...</td>\n",
       "      <td>Преамбула\\n\\nДоговор на техническое обслуживан...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1454</th>\n",
       "      <td>obrazec-dogovora-lichnogo-strahovanija</td>\n",
       "      <td>Преамбула\\n\\nДоговор личного страхования\\n\\nГо...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1455</th>\n",
       "      <td>obrazec-dogovor-arendy-garazha</td>\n",
       "      <td>Г. Курган                                     ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1456 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                   path  \\\n",
       "0          obrazec-iskovoe-zayavlenie-v-arbitrajniy-sud   \n",
       "1        obrazec-akt-peredachi-toplivnoy-karti-voditelu   \n",
       "2          obrazec-zayavlenie-o-perevode-v-drugoi-klass   \n",
       "3     obrazec-dogovora-podrjada-na-stroitel'stvo-saraja   \n",
       "4     obrazec-doverennost-na-registracziyu-ts-v-gibd...   \n",
       "...                                                 ...   \n",
       "1451     obrazec-dogovora-arendy-stroitel'nogo-pylesosa   \n",
       "1452    obrazec-dogovora-podrjada-na-remont-kofemashiny   \n",
       "1453  obrazec-dogovora-na-tehnicheskoe-obsluzhivanie...   \n",
       "1454             obrazec-dogovora-lichnogo-strahovanija   \n",
       "1455                     obrazec-dogovor-arendy-garazha   \n",
       "\n",
       "                                                   text  \n",
       "0     25 ноября 2024 года\\n\\n\\nВ Арбитражный суд Тюм...  \n",
       "1     ООО «Логистические услуги всем»\\n\\nАкт приема-...  \n",
       "2     Директору МБОУ СОШ № 19 г. Кургана Нестерову С...  \n",
       "3     Преамбула\\n\\nДоговор подряда на строительство ...  \n",
       "4     Доверенность\\n\\n\\n\\nг. Ижевск\\n\\nДата выдачи: ...  \n",
       "...                                                 ...  \n",
       "1451  Договор аренды строительного пылесоса\\n\\nг. Вл...  \n",
       "1452  Преамбула\\n\\nДоговор подряда на ремонт кофемаш...  \n",
       "1453  Преамбула\\n\\nДоговор на техническое обслуживан...  \n",
       "1454  Преамбула\\n\\nДоговор личного страхования\\n\\nГо...  \n",
       "1455  Г. Курган                                     ...  \n",
       "\n",
       "[1456 rows x 2 columns]"
      ]
     },
     "execution_count": 200,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "id": "a5491c4d",
   "metadata": {},
   "outputs": [],
   "source": [
    "additional_links['path'] = additional_links['link'].str.split('/', expand=True)[6].str.split('.', expand=True)[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 212,
   "id": "98239eaa",
   "metadata": {},
   "outputs": [],
   "source": [
    "additional_links.merge(res, how='inner').to_csv('../data/external_data.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 222,
   "id": "7db492e9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>proxy</td>\n",
       "      <td>Доверенность\\n\\n\\n\\nг. Ижевск\\n\\nДата выдачи: ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>proxy</td>\n",
       "      <td>ООО \"Артемида\"\\n\\n426000, г. Ижевск, ул. Сосно...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>proxy</td>\n",
       "      <td>Общество с ограниченной ответственностью \"Сигм...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>proxy</td>\n",
       "      <td>Доверенность\\n\\n\\n\\n\\n\\n\\n\\nг. Ижевск\\n\\nДвадц...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>proxy</td>\n",
       "      <td>Доверенность\\n\\n\\n\\nг. Ижевск\\n\\n\\n\\nтринадцат...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>496</th>\n",
       "      <td>bill</td>\n",
       "      <td>Счет № 5 от 01 октября 2020 г.\\r\\n\\r\\nПоставщи...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>497</th>\n",
       "      <td>bill</td>\n",
       "      <td>Счет на оплату № от 14 октября 2020 года\\r\\n\\r...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>498</th>\n",
       "      <td>bill</td>\n",
       "      <td>Счет №23                  от 12.09.2024 г.\\t\\t...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>499</th>\n",
       "      <td>bill</td>\n",
       "      <td>\"Огурец!\" (ИП Микрюков В.В.)\\t\\t\\t\\t\\t\\t\\r\\n\\t...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>500</th>\n",
       "      <td>bill</td>\n",
       "      <td>ООО «Тигр-Ряв»\\t\\t \\r\\nг. Липецк, ул. Масленая...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1954 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     class                                               text\n",
       "0    proxy  Доверенность\\n\\n\\n\\nг. Ижевск\\n\\nДата выдачи: ...\n",
       "1    proxy  ООО \"Артемида\"\\n\\n426000, г. Ижевск, ул. Сосно...\n",
       "2    proxy  Общество с ограниченной ответственностью \"Сигм...\n",
       "3    proxy  Доверенность\\n\\n\\n\\n\\n\\n\\n\\nг. Ижевск\\n\\nДвадц...\n",
       "4    proxy  Доверенность\\n\\n\\n\\nг. Ижевск\\n\\n\\n\\nтринадцат...\n",
       "..     ...                                                ...\n",
       "496   bill  Счет № 5 от 01 октября 2020 г.\\r\\n\\r\\nПоставщи...\n",
       "497   bill  Счет на оплату № от 14 октября 2020 года\\r\\n\\r...\n",
       "498   bill  Счет №23                  от 12.09.2024 г.\\t\\t...\n",
       "499   bill  \"Огурец!\" (ИП Микрюков В.В.)\\t\\t\\t\\t\\t\\t\\r\\n\\t...\n",
       "500   bill  ООО «Тигр-Ряв»\\t\\t \\r\\nг. Липецк, ул. Масленая...\n",
       "\n",
       "[1954 rows x 2 columns]"
      ]
     },
     "execution_count": 222,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([\n",
    "    pd.read_csv('../data/external_data.csv')[['class', 'text']],\n",
    "    sample\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 236,
   "id": "21c88f79",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'ООО \"Артемида\"\\n\\n426000, г. Ижевск, ул. Сосновая, д. 12А, тел. (3412) 44-44-44\\n\\nОГРН 223344556677, ИНН 5617894563, КПП 77665544332\\n\\n\\n\\nДоверенность\\n\\n\\n\\nГород Ижевск\\n\\n\\n\\nдвадцать третье ноября две тысячи девятнадцатого года\\n\\n\\n\\nОбщество с ограниченной ответственностью \"Артемида\" (ООО \"Артемида\"), юр.адрес: 426000, г. Ижевск, ул. Сосновая, д. 12А, тел. (3412) 44-44-44, ОГРН 223344556677, ИНН 5617894563, КПП 77665544332, в лице генерального директора Демидова Петра Петровича, действующего на основании Устава, данной доверенностью уполномачивает руководителя отдела делопроизводства Семенову Ирину Романовну, 12.09.1977 г.р., паспорт серия 9000 №112233, выдан 16.12.2003 г. Индустриальным РОВД г. Ижевска, зарегистрированную по адресу г. Ижевск, ул. Елочная, д. 123А, кв. 14, заверять своей подписью и печатью ООО \"Артемида\" копии документов, подлинники которых находятся в ООО \"Артемида\", согласно порядку, утвержденному действующим законодательством РФ.\\n\\n\\n\\nНастоящая доверенность выдана сроком на 3 года, без права передоверия.\\n\\n\\n\\nДоверенное лицо: Семенова / И.Р. Семенова\\n\\n\\n\\nДоверитель: генеральный директор Демидов / П.П. Демидов'"
      ]
     },
     "execution_count": 236,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.read_csv('../data/external_data.csv')[['class', 'text']].loc[1, :]['text']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 235,
   "id": "8c7e397c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'ООО \"Артемида\"\\n426000, г. Ижевск, ул. Сосновая, д. 12А, тел. (3412) 44-44-44\\nОГРН 223344556677, ИНН 5617894563, КПП 77665544332\\n\\nДоверенность\\n\\nГород Ижевск\\n\\nдвадцать третье ноября две тысячи девятнадцатого года\\n\\nОбщество с ограниченной ответственностью \"Артемида\" (ООО \"Артемида\"), юр.адрес: 426000, г. Ижевск, ул. Сосновая, д. 12А, тел. (3412) 44-44-44, ОГРН 223344556677, ИНН 5617894563, КПП 77665544332, в лице генерального директора Демидова Петра Петровича, действующего на основании Устава, данной доверенностью уполномачивает руководителя отдела делопроизводства Семенову Ирину Романовну, 12.09.1977 г.р., паспорт серия 9000 №112233, выдан 16.12.2003 г. Индустриальным РОВД г. Ижевска, зарегистрированную по адресу г. Ижевск, ул. Елочная, д. 123А, кв. 14, заверять своей подписью и печатью ООО \"Артемида\" копии документов, подлинники которых находятся в ООО \"Артемида\", согласно порядку, утвержденному действующим законодательством РФ.\\n\\nНастоящая доверенность выдана сроком на 3 года, без права передоверия.\\n\\nДоверенное лицо: Семенова / И.Р. Семенова\\n\\nДоверитель: генеральный директор Демидов / П.П. Демидов\\n\\n'"
      ]
     },
     "execution_count": 235,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample[\n",
    "    sample['class'] == 'proxy'\n",
    "].loc[137, :]['text']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 241,
   "id": "2f4034ff",
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'process' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m/tmp/ipykernel_10341/3362214803.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprocess\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'../data/external_data.csv'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'process' is not defined"
     ]
    }
   ],
   "source": [
    "process(pd.read_csv('../data/external_data.csv'))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
